EternalHaru

Untitled

Jun 14th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.42 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use Illuminate\Http\Request;
  6.  
  7. class HomeController extends Controller
  8. {
  9.     private $apiVersion = '5.78';
  10.  
  11.     private function getUserInformation(Request $request, $token) {
  12.         $url = 'https://api.vk.com/method/users.get';
  13.         $params = array(
  14.             'uid'          => $request->session()->get('user_id'),
  15.             'access_token' => $token,
  16.             'fields'       => 'first_name,last_name',
  17.             'version'      => $this->apiVersion
  18.         );
  19.         $userInfo = json_decode(file_get_contents($url . '?' . urldecode(http_build_query($params))), true);
  20.         return $userInfo['response'][0];
  21.     }
  22.  
  23.     private function getFriends(Request $request, $token) {
  24.         $url = 'https://api.vk.com/method/friends.get';
  25.  
  26.         $params = array(
  27.             'access_token' => $token,
  28.             'order'        => 'random',
  29.             'count'        => 5,
  30.             'offset'       => 3,
  31.             'fields'       => 'first_name,last_name',
  32.             'version'      => $this->apiVersion
  33.         );
  34.         $friends = json_decode(file_get_contents($url . '?' . urldecode(http_build_query($params))), true);
  35.         return $friends['response'];
  36.     }
  37.  
  38.     public function index(Request $request) {
  39.         $clientId = 6605907;
  40.         $clientSecret = 'h97Gp2kzH5EXIk83n4D4';
  41.         $redirectUri = 'http://u3835.red.elastictech.org/';
  42.         $display = 'page';
  43.         $scope = 'friends';
  44.         $responseType = 'code';
  45.  
  46.         if($request->session()->has('token')){
  47.             $token = $request->session()->get('token');
  48.             print_r($this->getFriends($request, $token));
  49.             return view('auth',[
  50.                 'user_info' => $this->getUserInformation($request, $token),
  51.                 'friends'   => $this->getFriends($request, $token)
  52.             ]);
  53.         } else if ($request->has('code')) {
  54.             $url = 'https://oauth.vk.com/access_token';
  55.             $code = $request->input('code');
  56.  
  57.             $params = array(
  58.                 'client_id'     => $clientId,
  59.                 'redirect_uri'  => $redirectUri,
  60.                 'client_secret' => $clientSecret,
  61.                 'code'          => $code
  62.             );
  63.  
  64.             $query = $url . '?' . urldecode(http_build_query($params));
  65.             $resp = json_decode(file_get_contents($query), true);
  66.             $request->session()->put('token', $resp['access_token']);
  67.             $request->session()->put('user_id', $resp['user_id']);
  68.             return redirect('/');
  69.         } else if ($request->has("error")){
  70.             return view('welcome', [
  71.                 'error' => $request->input("error"),
  72.                 'error_description' => $request->input("error_description")
  73.             ]);
  74.         } else {
  75.             $url = 'https://oauth.vk.com/authorize';
  76.  
  77.             $params = array(
  78.                 'client_id'     => $clientId,
  79.                 'redirect_uri'  => $redirectUri,
  80.                 'display'       => $display,
  81.                 'scope'         => $scope,
  82.                 'response_type' => $responseType
  83.             );
  84.  
  85.             $query = $url . '?' . urldecode(http_build_query($params));
  86.  
  87.             return view('welcome', [
  88.                 'query' => $query
  89.             ]);
  90.         }
  91.     }
  92.  
  93.  
  94.     public function logout(Request $request){
  95.         $request->session()->flush();
  96.         return redirect('/');
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment