【问题标题】:facebook graph api user access token procedurefacebook graph api 用户访问令牌程序
【发布时间】:2014-05-22 21:31:01
【问题描述】:

我在 facebook 中创建了多个应用程序来生成应用程序访问令牌,我使用这些令牌从多个 Web 应用程序访问图形 api。

我知道除非他们授权应用访问他们的数据,否则用户的私人数据是不可访问的。

我有一些用户授予对其数据的完全访问权限,并希望转换应用程序以获取用户访问令牌并获取包含所有帖子的用户供稿。我一直在将访问令牌与未指定任何特定域或本地主机 url 的应用程序一起使用,并且似乎可以正常获取数据。

所以我尝试了以下测试:让一个应用程序调用 facebook 登录并输入我的凭据,这将为应用程序提供对我的用户内容的访问令牌。这不会发生,因为当我输入我的凭据时,它只显示我授予的权限是我的用户个人资料信息。

因此,如果我想从其中一位用户那里收集访问令牌,那么如果他们点击我发送给他们的 url,我会从他们那里获得访问令牌以获取他们的私人数据,还是他们需要创建自己的应用程序并执行相同操作,然后向我提供访问令牌

【问题讨论】:

  • 很难理解你在问什么——你的问题是什么?

标签: facebook-graph-api facebook-access-token


【解决方案1】:

您没有指定您在应用上使用的语言或 SDK 版本。这可以帮助解决您的问题。

无论如何,我会尽力回答我认为可能是您问题的测验:

我尝试了以下测试:让一个应用程序调用 facebook 登录并 输入我的凭据,这将为应用程序提供一个访问令牌 用户内容。当我输入我的凭据时,这不会发生 只显示我授予的权限是我的用户个人资料信息。

您需要在登录请求中提供“范围”参数,就像这样:

FB.login(function(){
 FB.api('/me/feed', 'post', {message: 'Hello, world!'});
}, {scope: 'read_stream'});

在 Javascript SDK 上,或者像这样:

$helper->getLoginUrl(
    array(
        'scope' => 'read_stream'
    )
);

在 PHP SDK 上。

需要考虑的重要一点是,您必须通过应用程序的开发者页面请求批准您的所有应用程序(每个应用程序,分别)请求此权限到 FACEBOOK。除非 facebook 授予您此请求,否则您不能要求您的应用程序的用户授予您此权限。您可以前往https://developers.facebook.com/apps/my-app-id/review-status/并点击“提交请求”以请求批准请求此扩展权限。

您必须注意的另一件事:当您更改应用程序在登录时所需的权限时,用户可能必须从https://www.facebook.com/settings?tab=applications 删除该应用程序,然后重新登录,这样权限对话框才会重新出现。

更多权限信息:https://developers.facebook.com/docs/facebook-login/permissions/v2.0

如果您仍然卡住并且您的应用程序使用 PHP SDK 重定向登录,您还可以查看 this PR 我提交到 facebook,其中包含一个 basic functional example app 您可以修改以帮助您调试可能遇到的任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 2013-12-04
    • 2016-10-25
    相关资源
    最近更新 更多