为新创建的页面管理员用户检索页面返回空
Posted
技术标签:
【中文标题】为新创建的页面管理员用户检索页面返回空【英文标题】:Retrieving pages for a newly created admin user of a page returns empty 【发布时间】:2015-11-29 03:47:09 【问题描述】:我的应用程序使用此端点来检索用户有权访问的页面列表。
对于我的个人帐户,即页面管理员,它可以正常工作:
https://graph.facebook.com/me/accounts?access_token=[accesstoken_for_my_personal_profile]
Results:
"data": [
"access_token": "<the access token>",
"category": "Record Label",
"name": "Page Name",
"id": "Page ID",
"perms": [
"ADMINISTER",
"EDIT_PROFILE",
"CREATE_CONTENT",
"MODERATE_CONTENT",
"CREATE_ADS",
"BASIC_ADMIN"
]
]
但是当我们创建一个全新的 facebook 个人资料(普通用户,根据我个人的个人资料) - 并使用基于手机/短信的验证对其进行验证时,它只会在此处返回空白,尽管页面管理员可以访问相同的页面并以完全相同的方式请求访问令牌:
https://graph.facebook.com/me/accounts?access_token=[accesstoken_for_newly_created_profile]
"data": [
]
更新 访问令牌权限也不同。
因此,当调用https://graph.facebook.com/me/permissions?access_token=xxx 时,坏用户只有 public_profile 并安装为“已授予” - 但好用户拥有所有请求的权限,包括“manage_pages”。
首先用于请求令牌的 URL 在这里: https://www.facebook.com/dialog/oauth?client_id=[my_app_id]&redirect_uri=https://www.facebook.com/connect/login_success.html&scope=manage_pages,read_mailbox,read_stream,publish_actions,user_likes&response_type=token
这会指向一个登录页面,该页面以我们需要令牌的用户身份登录。
【问题讨论】:
调试“新”用户的访问令牌,看看它是否真的包含你认为的权限。 developers.facebook.com/tools/debug 不,它没有 - 我会更新问题,因为访问令牌的请求与“工作”用户相同。好像它无法发出具有请求权限的令牌一样,请注意近期问题更新。 新用户在应用中是否有角色?否则,您需要先让 Facebook 审核您的权限,然后才能向普通用户请求权限。 developers.facebook.com/docs/facebook-login/permissions/… 如果这就是您的意思,用户都不会在其各自帐户的“应用程序”下显示该应用程序。有些过去工作过的用户在应用中没有专门分配的角色。 不,我不是这个意思,我的意思是如果该用户在您的应用中被分配了管理员、开发人员或测试人员角色。 【参考方案1】:由以上@CBroe 提供:
这里的问题是,自从 API v2.0 出现以来,为在请求应用中不具有角色的用户请求访问令牌将不会分配某些权限(在我们的例子中是“manage_pages” ) 除非该应用已经过审核。
【讨论】:
以上是关于为新创建的页面管理员用户检索页面返回空的主要内容,如果未能解决你的问题,请参考以下文章
Django:创建电子邮件登录字段而不是用户名后,超级用户和用户无法登录到管理员和用户页面
无法从仪表板上的 wp_users 或用户页面删除 Wordpress 管理员帐户