/** * * @param BaseOAuth $client */ public function successCallback($client) { $tokenParams = $client->getAccessToken()->getParams(); $attributes = $client->getUserAttributes(); if ($attributes['state'] == 'err') { throw new NotFoundHttpException($attributes['desc']); } $user = new User(); $user->id = 'userdata'; $user->userData = $attributes['customer']; $user->accessToken = $tokenParams['access_token']; $user->refreshToken = $tokenParams['refresh_token']; $user->authKey = time() . rand(10000, 99999); $user->save(); Yii::$app->user->login($user, $tokenParams['expires_in']); }
/** * Grab the user's ungrabbed posts from Facebook * * @param \yii\authclient\BaseOAuth $client */ public static function grabSocial(\yii\authclient\BaseOAuth $client) { if ($client->getId() === 'facebook') { $token = $client->getAccessToken(); \Facebook\FacebookSession::enableAppSecretProof(false); $session = new \Facebook\FacebookSession($token->getToken()); $request = new \Facebook\FacebookRequest($session, 'GET', "/me/posts"); $response = $request->execute()->getResponse(); $posts = $response->data; foreach ($posts as $post) { if (!Fbposts::find()->where('post_id = :pid', ['pid' => $post->id])->exists()) { $fbpost = new Fbposts(['user_id' => Yii::$app->user->id, 'post_id' => $post->id, 'message' => isset($post->message) ? $post->message : $post->story, 'created_time' => $post->created_time]); $fbpost->save(); } } } }