php - Facebook Graph API v3.1 开发人员的访问令牌权限限制
问题描述
如您所知,Facebook 将其 API 升级到 V3.1,现在正在慢慢淘汰旧的 API 和应用程序,因此我们必须迁移到那里的新 API,他们做出了一些艰难的决定,这对垃圾邮件网站来说是件好事,但对开发人员来说也很难。
提醒:Graph API v2.7 将于 2018 年 10 月 5 日弃用。请使用API 升级工具了解这可能对您的应用程序有何影响。有关更多详细信息,请参阅更改日志
现在,我创建了一个新的 FB 应用程序,其中包含一些设置,如下面的屏幕截图所示,以在我自己的页面上发布而不是个人资料,但也出现了下面提到的错误。
然后我使用下面的代码在我自己的页面上发布,我是我创建此应用程序的同一帐户的所有者。
<?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_groups
等) manage_pages
,publish_pages
如上面最后一个屏幕截图所示。
注意:我现在创建的所有内容和代码,所以我需要使用新发布的 API 3.1 的解决方案。
更新:
我的朋友告诉我允许所有权限以使我的代码正常工作,如下面的屏幕截图所示,但我无法在我的应用程序中查看这些权限。我需要所有这些。如何得到它们?
解决方案
我尝试了很多东西,然后我在 Facebook 开发人员指南上发现,在新的更新之后,如果应用程序上线,没有人可以获得以下所有显示的权限。要在使您的应用程序上线后获得所有这些权限,您必须申请审查权限,否则您可以在开发模式下自由获得所有权限,但这仅适用于您。
如您所知,要获得您的应用程序中的所有权限供您自己使用,您无需查看您的应用程序或任何内容即可获得它。您可以在下面看到应用程序的常规设置。
您只需通过关闭实时模式将您的应用程序置于开发模式,如下图和上图所示。
完成此操作后,只需转到Graph API Explorer并单击“获取令牌”按钮,然后选择“获取用户访问令牌”,您将在此处弹出如本答案的第一个屏幕截图所示的弹出窗口,您可以在其中选择所需的范围和单击“获取访问令牌”。它将引发一个弹出窗口,需要您的许可才能允许,然后它将返回给您访问令牌。(您可以将访问令牌延长至 60 天)
注意:此令牌将发布在您的主页上,您只能看到您的应用程序,因为您的应用程序未上线,因此您的应用程序完成的每项活动都仅供您使用。
推荐阅读
- android - 字符串末尾的正则表达式替换在 Kotlin for Android 中不起作用
- wpf - MaterialDesign PopUpBox 拖放 Wpf
- python - 如何更改用户的昵称,知道他们的 id,但不知道他们的成员对象(Discord.py)
- javascript - 优化 React 应用程序 - 仅根据 React [React.JS]
- angular-cli - 如何在 Angular --prod build 中修复“TypeError: undefined is not a constructor (evalating 'new Lt.Subject')”?与 --optimization=false 一起使用
- flutter - 在颤动中动态获取上下文大小
- python - 具有多处理功能的 python 烧瓶生成作业
- date - 在 Tableau 中的给定日期获取该月的一周的开始日期
- jupyter-notebook - 执行 to_crs 以转换地理数据框的几何图形时内核死机
- php - 如何在 Lavarel 中使用 ID 获取属性名称