/**
  * Prepare the OAuth client before sending a request
  *
  * @param  string  $provider_id
  * @throws \Exception
  */
 protected function prepareRequest($provider_id)
 {
     $userProvider = $this->providerRepository->get($provider_id);
     if (empty($userProvider['token'])) {
         throw new \Exception('Invalid access token');
     }
     $this->token = $userProvider['token'];
 }
Example #2
0
 /**
  * POST: /
  *
  * @return redirect(/)
  */
 public function postIndex()
 {
     $user = Auth::user();
     $message = Input::get('message');
     $services = Input::get('services');
     foreach ($services as $providerId => $serviceEnabled) {
         $bIsEnabled = (bool) $serviceEnabled;
         if ($bIsEnabled === true) {
             $provider = $this->providerRepository->get($providerId);
             $post = $this->postRepository->createMessage($provider, $message);
             $this->dispatch(new PublishMessage($post));
         }
     }
     return redirect('/');
 }
Example #3
0
 /**
  * Process data returned as callback from the client
  *
  * @param  string  $user_id
  * @param  string  $profile_id
  * @param  array  $data = []
  * @return \App\Models\Provider
  * @throws \Exception
  */
 public function handleCallback($user_id, $profile_id, $data = [])
 {
     if (empty($data['oauth_token']) || empty($data['oauth_verifier'])) {
         throw new \Exception('Token validation failed');
     }
     $request_token = $data['oauth_token'];
     $request_token_verifier = $data['oauth_verifier'];
     $access_token = $this->getAccessToken($request_token, $request_token_verifier);
     $provider = $this->providerRepository->create($user_id, $profile_id, ServiceTwitter::SERVICE_CODE, ['request_token' => $request_token, 'request_token_verifier' => $request_token_verifier, 'oauth_token' => $access_token['oauth_token'], 'oauth_token_secret' => $access_token['oauth_token_secret'], 'expires_at' => ServiceTwitter::TOKEN_TTL + time()]);
     $userInfo = $this->getUserInfo($provider['_id']);
     return $this->providerRepository->create($user_id, $profile_id, ServiceTwitter::SERVICE_CODE, ['vendor_id' => (string) $userInfo->id, 'name' => $userInfo->name, 'profile_image_url' => $userInfo->profile_image_url]);
 }