9

在我的应用程序中,我有以下代码:

$loginUrl = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' ) );
header("Location: ".$loginUrl);

它将用户带到 facebook 并询问他们:

'[oshirowanens app] would also like permission to:
Post on your behalf
This app may post on your behalf, including status updates, photos and more.
Allow - Skip

如果单击Skip,我将被重定向回我的应用程序,我希望在其中看到以下 url 参数errorerror_reason,以及error_description当我的用户无法登录其 Facebook 帐户时会发生什么情况?

(可选)登录/授权过程完成后将用户重定向到的 URL。用户将在登录成功和失败时都被重定向到 URL,因此您必须按照身份验证文档中的说明检查 URL 中的错误参数。如果未指定此属性,则用户将被重定向到当前 URL(即调用此方法的页面的 URL,通常是用户浏览器中的当前 URL)。

来源:https ://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/

是否存在类似的跳过权限认证请求的东西publish_stream

4

3 回答 3

5

实际上,如果您从 FB 看到登录过程,这将是两步过程。

首先,您将被要求使用您的 FB 帐户登录,在同一页面上,您可以看到应用程序正在向用户寻求的“基本权限”列表。

在此步骤之后,您将看到另一个包含一组权限的对话框,这些权限称为“接受”和“跳过”的扩展权限。扩展权限是用户可以决定跳过的权限,即使跳过后用户也可以访问应用程序。

因此,当用户跳过扩展权限时,FB 不会将此视为错误,因此不会将任何内容返回给应用程序。

尽管如此,如果您觉得您请求的权限对您的应用程序很重要,您可以在您即将执行与该权限相关的操作时询问他们。在您的情况下,当您要在用户的墙上发帖时,您可以请求该权限,然后执行操作。

请参阅此处了解如何处理丢失的权限。

您还可以访问关于请求权限的最佳实践的 FB 指南。

于 2013-02-20T10:51:01.290 回答
4

我不认为你能得到错误。

您可能需要通过调用来检查授予的权限/me/permissions

https://graph.facebook.com/me/permissions?access_token=OAUTH_ACCESS_TOKEN_HERE

这将返回一个像这样的 json 对象:

{
  "data": [
    {
      "installed": 1, 
      "user_interests": 1
    }
  ], 
  "paging": {
    "next": "https://graph.facebook.com/SOME_USERID/permissions?limit=5000&offset=5000"
  }
}

使用 facebook 的 php sdk 应该是这样的:

$permissions = $facebook->api("/me/permissions");
if( array_key_exists('publish_stream', $permissions['data'][0])) {
 // granted
} else {
 // skipped
}
于 2013-02-18T09:43:36.220 回答
-2

试试这个 !

$facebookUser = $facebook->getUser();

if ($facebookUser) {
    try {
// Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api('/me');
    } catch (FacebookApiException $e) {
        print_r($e);
    }
}

或者

facebook 连接 api 回调 url

于 2013-02-15T09:17:00.283 回答