[在我的iOS应用中,我想允许用户通过在墙上发布信息来共享图片,因此当用户单击共享按钮时,它将要求用户向该应用授予publish_actions
权限。尽管我可以使用开发人员的Facebook帐户将其发布到墙上而不会出现任何问题,但是我不能使用在Facebook应用程序中没有任何作用的另一个Facebook帐户来这样做,但是会发生以下错误:
2014-08-27 16:12:30.896 myApp[8139:907] permission granted, starting to publish...
2014-08-27 16:12:31.154 myApp[8139:907] Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0x1f056860 {com.facebook.sdk:HTTPStatusCode=403, com.facebook.sdk:ParsedJSONResponseKey={
body = {
error = {
code = 200;
message = "(#200) The user hasn't authorized the application to perform this action";
type = OAuthException;
};
};
code = 403;
}, com.facebook.sdk:ErrorSessionKey=<FBSession: 0x1ddfb720, state: FBSessionStateOpenTokenExtended, loginHandler: 0x1ddf14d0, appID: (__myApp's Facebook appID__), urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x1ddc1dc0>, expirationDate: 2014-10-26 08:12:28 +0000, refreshDate: 2014-08-27 08:12:30 +0000, attemptedRefreshDate: 0001-12-30 00:00:00 +0000, permissions:(
status,
permission
)>}
[我用非开发者帐户单击共享按钮后,它从不提示要求publish_actions
权限,这是在我使用开发者帐户时执行的。同时,当我使用开发者的帐户时,该应用程序会以红色对话框要求获得许可,如以下屏幕截图所示:
而且我还阅读了与该问题相关的其他文章,有人说Facebook实施了新政策,该政策要求所有将发布材料的应用都必须先提交评论,然后开发者以外的任何用户才能发表任何评论。这是真的?如果是,我在哪里可以找到该政策更新?我试图在Facebook的开发人员页面上查找该信息,但我仅找到有关需要复查Facebook登录是否需要除public_profile等基本信息(Login review)之外的权限的声明。非常感谢!
是,如here所述,
应用可能会向任何提交以下内容的人进行以下许可:无Facebook的:
public_profile
电子邮件
user_friends
对所有新应用程序均有效。旧应用仍然可以使用旧API。
阅读有关FB评论的更多信息:https://developers.facebook.com/docs/apps/review