EternalHaru

Untitled

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