有一項任務是爲具有多個權限的服務器端訪問權限(多個讀取和發佈)提供。在3.0版中,會話打開有兩種單獨的方法:openForRead和openForPublish。Facebook SDK 3.0 - 附加權限
在開始申請是要求讀取權限:
private void authorizeFacebook() {
if (DEBUG)
Log.d(TAG, "Facebook authorization");
Session session = Session.getActiveSession();
if (!session.isOpened() && !session.isClosed()) {
session.openForRead(this.createReadRequest());
} else {
Session.openActiveSession(this, true, mFacebookSessionCallback);
}
}
但狀態回調後,應用程序要求發佈權限:
if (session.isOpened() && !session.getPermissions().contains("publish_stream")) {
if (DEBUG)
Log.d(TAG, "Facebook, Request additional permission: Publish Stream");
session.requestNewPublishPermissions(new NewPermissionsRequest(this, Arrays.asList("publish_stream")).setCallback(mFacebookSessionCallback).setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO));
並且在用戶體驗的一個巨大的問題,因爲在額外的權限請求之後,會出現Facebook登錄表單,並且用戶必須再次輸入憑據......它是否按照SDK開發人員的設計工作?..或者我做錯了什麼?
嗯,更好的是,Facebook SDK團隊給開發者一種方法,所以我們可以避免鏈接權限的東西。但是,無論如何,謝謝;) – 2013-04-01 09:28:26