2013-12-23 49 views
0

我有一个可以正常工作的Facebook应用程序,当我拨打$facebook->api('/me')时,它会返回所有的用户信息,但当我拨打$facebook->api('/100006737731259')时,它会失败。我得到的错误是:Facebook API失败,Graph工作。为什么?

array("error" => array("message" => "Unsupported get request.", "type" => "GraphMethodException", "code" => 100)) 

而且奇怪的是,如果我打开浏览器,进入http://graph.facebook.com/100006737731259它返回所有没有问题(这是我的应用程序一个测试用户)的信息。

你有过这样的问题吗?我不知道我能做什么错。

非常感谢您

+0

你使用什么SDK? –

+0

我使用Facebook的PHP SDK v3.2.2 –

+0

顺便说一句,非常非常,它经常正常工作。这是一件很奇怪的事情。 –

回答

0

当为测试用户调用此API时,可以放置空的访问令牌或者根本不放置access_token参数,然后就可以解决它。

如果你真的想放的access_token,还有你必须遵循的规则:

禁止的access_token:

  1. 普通用户的访问令牌

  2. 其他应用程序的测试用户访问令牌

  3. 其他应用访问令牌

允许的access_token:无论是测试用户当前的应用程序的其他测试用户或该测试用户100006737731259,既允许

  1. 测试用户的访问令牌()从https://graph.facebook.com/APP_ID/accounts/test-users?installed=true&name=TEST_USER_NAME&locale=en_US&permissions=read_stream&method=post&access_token=APP_ACCESS_TOKEN检索(更换相关APP_ID,TEST_USER_NAME和APP_ACCESS_TOKEN)

  2. 当前应用程序访问令牌

    * APP_ACCESS_TOKEN可以从https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=client_credentials检索(更换相关APP_SECRET)

    **应用程式密钥可以从https://developers.facebook.com/x/apps/APP_ID/settings/得到(更换相关APP_ID)

证据是,如果你与其他用户的访问令牌请求,https://graph.facebook.com/100006737731259?access_token=PROHIBITED_ACCESS_TOKEN在网页浏览器,你最终会得到错误。

但是,如果您使用网络浏览器执行https://graph.facebook.com/100006737731259?access_token=Allowed_ACCESS_TOKENhttps://graph.facebook.com/100006737731259?access_token=(将access_token值留空),则可以获取数据。

+0

你说得对。无论如何,我认为Facebook SDK应该可以和测试用户一起工作,因为我们不得不为测试用户调用没有访问令牌的API,并且为了生产而使用允许的访问令牌。 –

0

这是只与测试用户出现问题。我不知道为什么,但它是。如果你使用真实的用户,这不会发生。

+0

谢谢你的回答。有什么方法可以解决它? –