zhouping 2016-10-18 16:34:55 5841次浏览 0条评论 2 2 0

本文转载于萝卜也爱疯狂

登录开发者中心创建应用
https://developers.facebook.com/?ref=pf

下载php sdk
https://developers.facebook.com/docs/reference/php

%e6%88%aa%e5%9b%be00

接下来整合到yii2.0 框架中
将facebook文件放到vendor\yiisoft\yii2目录中
修改原来的命名空间 namespace Facebook; 改为 namespace yii\Facebook; 所有的Facebook前加上yii\;
use yii\Facebook\Authentication\AccessToken; 同样也都加上yii\;

创建登录文件
login.php

use yii\Facebook\Facebook;

//如果有报文件找不到,请加上下面这句
require(__DIR__ . '/../vendor/yiisoft/yii2/Facebook/autoload.php');//引入自动加载文件

$fb = new Facebook([
  'app_id' => '{app-id}', //创建应用的id
  'app_secret' => '{app-secret}',//创建应用的密钥
  'default_graph_version' => 'v2.2',//sdk版本号
  ]);

$helper = $fb->getRedirectLoginHelper();

$permissions = ['email']; // Optional permissions

$loginUrl = $helper->getLoginUrl('https://example.com/fb-callback.php', $permissions);

echo '<a href="' . htmlspecialchars($loginUrl) . '">Log in with Facebook!</a>';


//回调文件
//fb-callback.php 这里需要在应用指定回调url 如果是app后端处理则不用

use yii\Facebook\Facebook;

require(__DIR__ . '/../vendor/yiisoft/yii2/Facebook/autoload.php');//引入自动加载文件

$fb = new Facebook([
  'app_id' => '{app-id}', //创建应用的id
  'app_secret' => '{app-secret}',//创建应用的密钥
  'default_graph_version' => 'v2.2',//sdk版本号
  ]);

$fbApp = $fb->getApp();

//  me?fields=email,name,gender,picture'表示要取的数据字段名
//$accessToken facebook返回的token
$request = new FacebookRequest($fbApp, $accessToken,
 'GET', '/me?fields=email,name,gender,picture');

try {
   $response = $fb->getClient()->sendRequest($request);

} catch(Facebook\Exceptions\FacebookResponseException $e) {
   // When Graph returns an error
   echo 'Graph returned an error: ' . $e->getMessage();
   exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  // When validation fails or other local issues
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}

$graphNode = $response->getGraphNode();
$email = $graphNode->getField('email');//取登录用户的email

整个demo就完成了

觉得很赞
    没有找到数据。
您需要登录后才可以评论。登录 | 立即注册