Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook应用程序警告:同时请求读取和写入权限_Facebook - Fatal编程技术网

Facebook应用程序警告:同时请求读取和写入权限

Facebook应用程序警告:同时请求读取和写入权限,facebook,Facebook,您好,我收到facebook开发者的警告: 您的应用程序同时请求读取和写入权限。只有当用户试图向Facebook共享内容时,您才应该请求写入权限 我应该如何解决此问题 谢谢。您需要包括才能使用“发布操作” 说明如何设置权限并将帖子发布到墙上。本质上,如前所述的必要许可包括如下内容: private static final List<String> PERMISSIONS = Arrays.asList("publish_actions"); private static fina

您好,我收到facebook开发者的警告:

您的应用程序同时请求读取和写入权限。只有当用户试图向Facebook共享内容时,您才应该请求写入权限

我应该如何解决此问题

谢谢。

您需要包括才能使用“发布操作”

说明如何设置权限并将帖子发布到墙上。本质上,如前所述的必要许可包括如下内容:

private static final List<String> PERMISSIONS = Arrays.asList("publish_actions");
private static final List PERMISSIONS=Arrays.asList(“publish_actions”);
为了发布故事,他们甚至为您提供了必要的代码,该代码还使用了“发布行动”权限:

private void publishStory() {
Session session = Session.getActiveSession();

if (session != null){

    // Check for publish permissions    
    List<String> permissions = session.getPermissions();
    if (!isSubsetOf(PERMISSIONS, permissions)) {
        pendingPublishReauthorization = true;
        Session.NewPermissionsRequest newPermissionsRequest = new Session
                .NewPermissionsRequest(this, PERMISSIONS);
    session.requestNewPublishPermissions(newPermissionsRequest);
        return;
    } ... }
private void publishStory(){
Session=Session.getActiveSession();
if(会话!=null){
//检查发布权限
List permissions=session.getPermissions();
如果(!isSubsetOf(权限、权限)){
pendingPublishReauthorization=真;
Session.newpermissions请求newpermissions请求=新会话
.NewPermissionsRequest(此,权限);
session.requestNewPublishPermissions(newPermissionsRequest);
返回;
} ... }
他们还使用以下代码检查权限:

private boolean isSubsetOf(Collection<String> subset, Collection<String> superset) {
for (String string : subset) {
    if (!superset.contains(string)) {
        return false;
    }
}
return true;
private boolean isSubsetOf(集合子集,集合超集){
for(字符串:子集){
如果(!superset.contains(string)){
返回false;
}
}
返回true;
}

这意味着您只需要使用写入权限,而不需要使用读取权限


希望这能有所帮助。

谢谢David。看来我的应用程序运行正常。抓取用户信息是>>阅读…在用户墙上分享>>写作。facebook的警告是“注意”,而不是“立即修复”,所以我想这只是一个建议。或者你认为这更重要吗?再次感谢。不,如果你只是在使用扩展权限和此处的“发布操作”,我将忽略警告,因为那时你似乎已经正确地使用了权限。希望它有所帮助
In the rare case your app requires publishing permissions up front (for example, an app that does nothing but publish a user's mood to Facebook).
(1)first request the bare minimum read permissions at initial login. After the user logs in with Facebook, 
(2)show the user a screen explaining why your app needs publishing permissions and let the user opt-in to the publishing permission request by clicking a button. 
 This will provide the user more context and improve your conversion.

Another legitimate case for requesting read and publish permissions back-to-back is for users that log in to your app with email or a non-Facebook login option. 
When these users want to publish to Facebook, your app will need to request read permissions to connect their account followed by publishing permissions back-to-back. 
In this case, make sure that the only read permissions you request are public profile and friend list. 
This provides the best user experience because the user wants to simply publish from your app and is not interested in providing additional read permissions. 
It will also improve your conversion.