簡體   English   中英

Facebook SDK 3.0-其他權限

[英]Facebook SDK 3.0 - additional permissions

有一項任務是為服務器端訪問令牌提供幾種權限(多次讀取和發布)。 在3.0版中,有2種單獨的會話打開方法:openForRead和openForPublish。

在開始時,應用程序要求讀取權限:

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開發人員的設計工作?..還是我做錯了什么?

這個答案可能遲到了。 對於Android版FB SDK 3.0,我遇到了類似的問題。 這是SDK中的一個錯誤,他們已經在3月20日發布的Android FB SDK 3.0.1中對其進行了修復。 更改日志中提到:

“ Web視圖登錄”對話框包含用於請求新權限的方案的令牌信息。 這樣避免了用戶在每次會話請求新權限時都必須輸入其登錄憑據。

升級后重試。 這里獲取新的SDK。

我發現如果用戶未在其Android設備上安裝Facebook應用程序,則每次要求他/她提供其他權限時,都會出現登錄屏幕。 但是,如果用戶確實在其設備上安裝了Facebook應用程序,那么我發現他/她只需要單擊“是/否”按鈕來確認/取消確認其他權限。

順便說一句,我整理了三篇簡短的文章,解釋了如何打開Facebook會話,請求其他權限等等。 這是第一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM