2014-06-05 59 views
1

我有一個應用程序,我收到用戶的個人信息登錄,並使用讀取權限獲取用戶的郵件。這工作正常!當用戶要求發佈帖子時,我要求獲得發佈許可,並且它也可以正常工作。Facebook SDK v3.14.1 requestNewPublishPermissions未更新用戶權限? Android

將Facebook Android SDK從v3.0.1升級到v3.14.1時遇到問題 請求新的發佈權限,然後發佈與v3.0.1一樣正常,但使用v3.14.1我無法將用戶的權限更新爲發佈。代碼在下面,有什麼改變嗎?我在文檔上尋找它,但沒有任何線索。

當我接收上Session.StatusCallBack呼叫事件:

if (session != null) { 
     LogUtils.LogI(FacebookHelper.class, session.toString()); 
     if (session.isOpened()) { 
      CheckForPublish(context, session, listener); 
     } else if (session.isClosed()) { 
      // Logout successful 
      listener.onLogoutSucceed(); 
     } 
    } else { 
     LogUtils.LogI(FacebookHelper.class, "session is null"); 
     listener.noSession(); 
    } 

    if (exception != null) { 
     if (exception.getClass().getSimpleName() 
       .equals("FacebookOperationCanceledException")) { 
      listener.onLoginCanceled(); 
     } else { 
      listener.onError(null); 
     } 
    } 

CheckForPublish方法是:

if (!session.getPermissions().contains(listener.getPublishPermission()[0])) { 
    LogUtils.LogI("Asking for publish permission..."); 
    Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(activity, listener.getPublishPermissionAsList()); 
    session.requestNewPublishPermissions(newPermissionsRequest); 
} else { 
    // Login successful, 
    listener.onLoginSucceed(); 
} 

而且logcat的輸出是這樣的:

問計出版許可...

會議{會話狀態:OPENED_TOKEN_UPDATED,令牌:{的accessToken令牌:ACCESS_TOKEN_REMOVED權限:安裝,public_profile,電子郵件]},APPID:1401502483442997}

(#200)的用戶未授權應用程序執行此操作

權限未更新,超過該用戶甚至沒有看到任何權限請求來接受它。

回答

0

我解決了這個問題:在v3.01上,我要求獲得「publish_stream」權限,但更多的挖掘顯示在v3.14.1上我應該使用「publish_actions」權限。