簡體   English   中英

安裝Facebook App時,Android Facebook API錯誤與SSO

[英]Android Facebook API errors with SSO when Facebook App installed

我將facebook API / SDK搞砸了一段時間,因為我將它集成到我正在處理的應用程序中。 我需要的唯一真正的Facebook功能是簽到,他們工作。 大多數時候。 這里開始我的問題。

看完facebook API之后。 我開始懷疑我要么完全不了解API,要么是非常錯誤並且缺少一些重要的功能(比如注銷?!)。 這些錯誤的主要問題是,如果我的應用程序完全檢查到facebook(在所有帳戶上,不僅僅是開發人員),然后我安裝Facebook應用程序以更改用戶,然后通過我的應用程序簽入過程將除非我卸載facebook應用程序,否則無法正常工作。 我已經看過幾篇關於它的帖子,但據我所知這個話題從未在這里得到充分討論。

我通常會更直接地提出我的問題,但我擔心我可能只是像傻瓜一樣使用api,並且首先要確保這對其他人來說是一個實際問題,除了我(特別是在我承諾之前)認為facebook不知道他們在使用API​​做了什么),其次,看看是否有任何解決方法(甚至可能是簡單的facebook庫)。 提前感謝您對這些問題的任何建議和/或確認。

編輯:所以我最終使用Easy Android facebook Sdk(http://www.easyfacebookandroidsdk.com/)。 它的文檔很差,但是這些例子向您展示了如何做到這一點,你可以把它搞亂。

但我的問題是關於facebook如何/為什么不能將它包含在他們的api中仍然存在

沒有其他解決方案(Cygwin,openssl,錯誤的別名,密碼錯誤)之后,此解決方案對我有用

問題是Windows生成無效密鑰。

使用您的應用運行此操作:

try {
   PackageInfo info = getPackageManager().getPackageInfo("**YOURPACKAGENAME**", PackageManager.GET_SIGNATURES);
   for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.i("PXR", Base64.encodeBytes(md.digest()));
   }
}
catch (NameNotFoundException e) {}
catch (NoSuchAlgorithmException e) {}

不要忘記獲得Base64(http://iharder.sourceforge.net/current/java/base64/)。

生成的密鑰在您的logcat上,用此替換舊的密鑰。

解決方案歸功於: http//p-xr.com/implementing-facebook-into-your-app-invalid-key-with-keytool/

正如Guy所說,無效的Key Hash可能是問題所在。 在我的情況下,事實證明它實際上是它。 Jessy,如果這不是您的問題,您可能需要查看AuthListener生成的錯誤消息。

登錄前,您可能會為會話分配一個身份驗證偵聽器:

 SessionEvents.addAuthListener(new FbAPIsAuthListener());

現在,只需轉到實現偵聽器的函數並嘗試捕獲錯誤:

 /*
 * The Callback for notifying the application when authorization succeeds or
 * fails.
 */

public class FbAPIsAuthListener implements AuthListener {

    @Override
    public void onAuthSucceed() {
        requestUserData();
    }

    @Override
    public void onAuthFail(String error) {
        //Could not authenticate. Check error message.
        System.out.println("Login error due to " + error)
    }
}

希望有所幫助。

如果在安裝FB應用程序時遇到invalid_key,則由於您使用的密鑰錯誤。 使用調試密鑰運行keytool時,例如:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

一定要輸入' android '作為密碼,而不是你的密鑰庫密碼。 要驗證,請確保您獲得的密鑰不是 ga0RGNYHvNM5d0SLGQfpQWAPGJ8 =但應該是其他內容。

為了'注銷'嘗試調用SessionStore.clear()

我忘了用這個來更新我的進度。 我最終選擇了簡單的facebook android api,因為即使它有bug,它也是積極開發的,而不是一個完全沒用的垃圾。

對於任何有相同問題的Facebook沒有修復他們的軟件錯誤,請查看http://www.easyfacebookandroidsdk.com/

暫無
暫無

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

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