Facebook Graph API - 与已安装该应用的朋友发生问题

时间:2014-07-07 08:04:13

标签: php android facebook facebook-graph-api

我有一个Android客户端,可以启动登录到Facebook,接收访问令牌以及有关该配置文件的其他详细信息。

android客户端将access_token和详细信息传递给服务器(PHP)。

两者都安装了facebook sdk。

当我从PHP发起FacebookRequest时,例如'/ me /'它正在运行。

但当我从PHP发起一个(安装了APP的朋友)FacebookRequest时 “/我的/朋友的。我得到“null”。

当我使用facebook提供的图形浏览器时,结果为:

{
  "data": [
  ]
}

帮助者的其他信息:

  • 该应用目前只包含两位用户,这是facebook上的朋友。

  • 这些用户都是该应用的管理员。

  • 目前该应用尚未发布。

  • 我们没有在某处建议的统计和评论中“开始提交”。

  • 我们要求获得'user_friends'的许可。

由于堆栈溢出中的所有内容都需要声誉, 这是权限的样子:

http://i.stack.imgur.com/kURwB.png

由于

编辑:


好的,我添加了两个测试用户,让他们成为彼此的朋友,而/我/朋友通过图形资源管理器正在为他们工作。

但为什么它对非测试用户不起作用?

1 个答案:

答案 0 :(得分:0)

好, 显然Facebook在提供新的访问令牌时遇到了问题。 不知道为什么,但它为新的Log-Ins提供了相同的访问令牌。

现在他们已经修复了这里我用PHP写的一个Handy函数,它将允许用户使用 解析Facebook的回复,这可能会出现,因为没有通过Docs,Google,StackOverFlow解释。

use Facebook\FacebookSession;
use Facebook\FacebookRequest;

function find_my_facebook_friends($access_token){

require_once 'facebook-php-sdk-v4-4.0-dev/autoload.php';

FacebookSession::setDefaultApplication('app_key','secret_key');


$session = new FacebookSession($access_token);
$request = new FacebookRequest(
    $session,
    'GET',
    '/me/friends'
);

  $response = $request->execute();
  $graphObject = $response->getGraphObject()->asArray();

  return $graphObject;



   }

用法:

   include_once 'path/to/function.php';
  //You wanna use it, just so the PHP file contains your app_key, secret_key Wont be exposed.

   $access_token = isset($_POST['access_token']) ? $_POST['access_token'] : NULL;
   $facebook_object = find_my_facebook_friends($access_token);


   for($i = 0 ; $i < count($facebook_object['data']) ; $i++){

    $id = get_object_vars($facebook_object['data'][$i]);
    echo $id['id'];
    echo $id['name'];
   //You don't have to echo, you could handle those fields as you wanted.

}

此功能是指移动客户端将其登录用户的访问令牌传递给服务器。

我希望这会为你节省很多时间!