php - Facebook PHP SDK 4.0 登录

标签 php facebook facebook-graph-api

我正在尝试使用适用于我网站的新 PHP SDK 4.0 登录 Facebook。我几乎一字不差地遵循了他们的要点,但仍然无法让测试页正常工作。当我尝试登录时,我被重定向到以下形式的网址:

https://www.facebook.com/v2.0/dialog/oauth?client_id={some number}&redirect_uri{localhost%2F%7E{MyName}%2F{my site}}&state=08d94ec4670256aa2b2c586781590766&sdk=php-sdk-4.0.0&scope=

我已经在我的 Facebook 开发者页面上填写了相同的 url,这是我要测试的代码:

<?php

require_once( 'Facebook/FacebookSession.php' );
require_once( 'Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'Facebook/FacebookRequest.php' );
require_once( 'Facebook/FacebookResponse.php' );
require_once( 'Facebook/FacebookSDKException.php' );
require_once( 'Facebook/FacebookRequestException.php' );
require_once( 'Facebook/FacebookAuthorizationException.php' );
require_once( 'Facebook/GraphObject.php' );

use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;

// start session
session_start();

// init app with app id and secret
FacebookSession::setDefaultApplication( '{My app ID}','{My app secret}' );

// login helper with redirect_uri
$helper = new FacebookRedirectLoginHelper('localhost/~{My Name}/{My Project}' );

try {
  $session = $helper->getSessionFromRedirect();
} catch( FacebookRequestException $ex ) {
  // When Facebook returns an error
} catch( Exception $ex ) {
  // When validation fails or other local issues
}

// see if we have a session
if ( isset( $session ) ) {
  // graph api request for user data
  $request = new FacebookRequest( $session, 'GET', '/me' );
  $response = $request->execute();
  // get response
  $graphObject = $response->getGraphObject();

  // print data
  echo '<pre>' . print_r( $graphObject, 1 ) . '</pre>';
} else {
  // show login url
  echo '<a href="' . $helper->getLoginUrl() . '">Login</a>';
}

不幸的是,我从来没有被重定向回来,甚至没有加载登录页面。我在这里做错了什么?

最佳答案

我遇到了同样的问题。 您需要先在 Facebook 应用程序设置中设置域 URL 和站点 URL。转到此页面更改您的设置:https://developers.facebook.com/apps .

我已经一步步分享了here .

关于php - Facebook PHP SDK 4.0 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23439895/

相关文章:

php - 如何通过文章递归地从表中获取所有类似物?

facebook-graph-api - Oauth.io 仅从 Facebook v2.4 和 v2.5 的原始数据中获取 "name"和 "id"

python - 向 Facebook 验证用户保存附加信息?

安卓工作室 : INSTALL_FAILED_CONFLICTING_PROVIDER facebook sdk

javascript - 如何等待异步函数返回?

facebook - 如何使用 Facebook Social Graph API 给某人点赞?

ruby-on-rails - Ruby 的错误 URI

javascript - API 在 MVC 中扮演什么角色?

php - 使用预设变量提取列名,然后在查询中使用它

php - 仅带有脚本标签的 HTML 文件