php - 面向开发人员的 Facebook Graph API v3.1 访问 token 权限限制

标签 php facebook facebook-graph-api facebook-php-sdk

如您所知,Facebook 将其 API 升级到 V3.1,现在正在慢慢淘汰旧的 API 和应用程序,因此我们必须迁移到新的 API,他们做出了一些艰难的决定,这对 SPAM 网站来说是好的,但对开发人员来说也很难。

提醒:Graph API v2.7 将于 2018 年 10 月 5 日弃用。请使用 API Upgrade Tool了解这对您的应用有何影响。有关详细信息,请参阅 changelog

现在我创建了一个新的 FB 应用程序,其中的一些设置如下面的屏幕截图所示,在我自己的页面而不是个人资料上发布,但也出现了下面提到的错误。

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

然后我使用下面的代码在我自己的页面上发布,我是创建此应用程序的同一帐户的所有者。

<?php
$page_access_token = 'GENERAL_ACCESS_TOKEN';
$page_id = 'OWN_PAGE_ID';
// From https://developers.facebook.com/tools/explorer

$data['message'] = "Text_Message";
//$data['picture'] = "http://www.example.com/image.jpg";
//$data['link'] = "http://www.example.com/";
//$data['caption'] = "Caption";
//$data['description'] = "Description";

$data['access_token'] = $page_access_token;
$post_url = 'https://graph.facebook.com/'.$page_id.'/feed';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($ch);
echo $return;
curl_close($ch);
?>

现在,当我运行上面的代码时,出现以下错误...

{"error":{"message":"(#200) Requires either publish_to_groups permission and app being installed in the group, or manage_pages and publish_pages as an admin with sufficient administrative permission","type":"OAuthException","code":200,"fbtrace_id":"XXXXXXXXX"}}

现在我的问题是我可以从哪里允许我的应用程序这些权限,因为我允许的地方都没有看到这些名称(publish_to_groupsmanage_pagespublish_pages 等),如上面最后一个屏幕截图所示。

注意:我现在创建的所有内容和代码,因此我需要使用新发布的 API 3.1 的解决方案。

更新:

我的 friend 告诉我允许所有权限以使我的代码正常工作,如下面的屏幕截图所示,但我无法在我的应用程序中查看这些权限。我需要所有这些。如何获得它们?

enter image description here

最佳答案

我尝试了很多东西,然后我在 Facebook 开发者指南上发现,在新的更新之后,如果应用程序上线,没有人可以获得下面显示的所有权限。要在您的应用上线后获得所有这些权限,您必须申请审查权限,否则您可以在开发模式下免费获得所有权限,但它只对您有效。

enter image description here

如您所知,要获得您的应用程序中的所有权限供您自己使用,您无需审查您的应用程序或任何其他内容即可获得它。您可以在下面看到应用程序的常规设置。

enter image description here

您只需关闭实时模式,将您的应用程序置于开发模式,如下面和上方的屏幕截图所示。

enter image description here

完成此操作后,只需转到 Graph API Explorer然后单击“获取 token ”按钮,然后选择“获取用户访问 token ”,在这里您将看到弹出窗口,如本答案的第一个屏幕截图所示,您可以在其中选择所需的范围并单击“获取访问 token ”。它会在需要您允许的地方引发一个 POPUP,然后它会返回给您访问 token 。 ( You Can Extend Your Access Token To 60 Days )

注意:此 token 将发布在您的页面上,您只能看到,因为您的应用未上线,因此您的应用执行的每项事件仅供您使用。

关于php - 面向开发人员的 Facebook Graph API v3.1 访问 token 权限限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52457009/

相关文章:

ruby-on-rails - 使用 get_page 方法检索结果页面时,考拉 gem (图形 API)InvalidURIError

javascript - 如何在开发者api2.4中获取facebook好友列表

PHP MySQL JSON : Error is: Token 'start of object' not expected after outer-most array or object

php - 返回用户 MySQL 关注的人的所有帖子

java smack 4.0.3库facebook登录错误

ios - Facebook SDK 登录对话框

ios - 如何使用 URLScheme 在 facebook 或 google 上分享帖子

javascript - facebook og 数据未更新

PHP 评估 $a ="$a"?

javascript - PHP JSON 转换为 javascript 变量