2013-05-31 61 views
0

如果手機已安裝了Facebook本機應用程序,則會在提供用戶名和密碼後開始加載並顯示彈出窗口,它說的瀏覽器 網頁不可用。Facebook示例會話登錄如果手機已安裝了Facebook本機應用程序,則應用程序無法正常工作

fbconnect:// success#sucess_token = CAA ..的網頁可能暫時關閉,或者它可能已經永久移動到新的Web地址。 沒有回調調用到應用程序。

我已經正確創建了散列鍵,我的應用程序SSO在SDK版本2.0中正常工作。所以它不能是散列鍵不匹配。 當應用程序SessionLoginBehavior.SUPPRESS_SSO模式按預期工作時。

OpenRequest req=new OpenRequest(LoginActivity.this); 
req.setPermissions(Arrays.asList("read_stream", "user_birthday","email")); 
session.openForRead(req.setCallback(statusCallback)); 

有沒有辦法使用會話登錄機制來實現SSO行爲?我搜索每一個我沒有找到答案的地方。當Native Facebook應用程序在那裏開始失敗時。

回答

0

你可以使用它像這樣...

mBtnFacebook = (LoginButton) v.findViewById(R.id.btn_facebook); 
mBtnFacebook.setReadPermissions(Arrays.asList("email", "user_birthday")); 
mBtnFacebook.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK); 

然後

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode != 0) { 
      Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); 
      Session.openActiveSession(this, true, new Session.StatusCallback() { 
       @Override 
       public void call(final Session session, SessionState state, Exception exception) { 
        if (session.isOpened()) { 
         Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { 
          @Override 
          public void onCompleted(GraphUser user, Response response) { 
           if (user != null) { 

           } 
          } 
         }); 
        } 
       } 
      }); 
     } 
    } 

確保在清單

<activity android:name="com.facebook.LoginActivity" 
      android:screenOrientation="portrait" 
      android:theme="@android:style/Theme.Translucent.NoTitleBar" 
      android:label="@string/app_name" /> 

有這個問題,以及

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id"/> 

這個標籤是標籤裏面

,應該是吧:)

+0

終於我找出了問題。將facebook電話應用程序更新到最新版本時,此SSO網頁重定向問題已消失。如果你有同樣的問題嘗試更新Facebook的應用程序更新的版本,並try.Thanks mBarisa您的關注 –

0

生成散列鍵使用此代碼。

try { 
      PackageInfo info = getPackageManager().getPackageInfo(
        "com.facebook.scrumptious", PackageManager.GET_SIGNATURES); 
      for (Signature signature : info.signatures) { 
       MessageDigest md = MessageDigest.getInstance("SHA"); 
       md.update(signature.toByteArray()); 
       Log.d("YOURHASH KEY:", 
         Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
      } 
     } catch (NameNotFoundException e) { 

     } catch (NoSuchAlgorithmException e) { 

     } 

thanks. 
相關問題