關於第三方登錄與分享的問題總結

最近完成項目中的第三方登錄與分享的功能,主要實現了 微信、QQ、微博、豆瓣的第三方登錄與分享。


關於第三方登錄與分享,網上有很多的第三方集成平臺,使用這些平臺,開發者只需要完成該平臺的代碼就可以實現微信、QQ、微博、豆瓣等多個不同開放平臺的登錄分享功能。


這些平臺,我最開始使用的是ShareSDK,ShareSDK在分享上做的不錯,但在第三方登錄部分做的不太好,後來經同事介紹使用了友盟的第三方登錄與分享功能,發現非常不錯。


至於如何使用友盟的第三方登錄與分享功能,我這裏不說了,因爲友盟的使用文檔寫的非常詳細。想要使用友盟的API可以去他們的官網查看。另外,他們的QQ技術支持也不錯,就是慢。(目前我用過的,文檔寫的詳細的只有 百度地圖、ShareSDK、極光推送,其他的平臺文檔寫的都不咋地)


在使用登錄與分享的時候,發下一下幾點需要注意:


1.   在QQ、新浪、豆瓣的平臺上,需要添加測試賬號,不然不可使用。等通過他們平臺的審覈後才支持其他賬號。


2.   QQ平臺上,添加測試賬號的時候,這個測試賬號一定要與QQ平臺使用的QQ賬號是好友,否則添加不上測試賬號。


3.  微信平臺上,一般需要添加微信回調的Activity WXEntryActivity,這個Activity一定要放在  包名.wxapi下 ,否則會出現莫名錯誤,而且一定要在清單文件註冊。


4.  在使用 微信、新浪的第三方登陸與分享的時候,需要添加祕鑰 SHA1 (微信),MD5(新浪),這兩個值如何獲取就不說了,重點是下面的內容:


     在Android中,任何編譯運行的操作都需要打包APK。在打包APK的時候,都需要簽名。簽名目前分爲2種,一種是默認的Debug簽名,一種是 開發者創建的簽名。在開發測

    

        試的時候,一般使用的是默認簽名。在項目發佈上線的時候,就需要 使用 開發者創建的簽名 來打包。


      然而,在獲取 SHA1 或  MD5 值的時候,這兩個值都是與簽名相關的,不同的簽名,獲取的值是不同的。所以,在獲取值的時候,到底是使用 debug簽名 還是 自己創建的


       簽名呢?  答案是 自己創建的簽名! 因爲項目最終在 打包發佈的時候,使用的是 自己的簽名,而不是 debug簽名。


     所以,在獲取 SHA1 或 MD5 的時候, 一定要使用 自己創建的簽名 來打包APK,然後取值,添加 到 微信 或 新浪的 開放平臺上。


    那麼,如果使用的是 自己創建的簽名,在進行測試的時候就比較麻煩了,必須使用自己創建的簽名 來打包 (因爲APK的MD5值或SHA1值必須要與微信或新浪一致)


         在Eclipse中,只能自己手動來 使用自己的簽名打包。

   

       在 AndroidStudio 中,一般使用的是 Gradle 進行編譯,可以在 build.gradle 中 指定 編譯時 使用的簽名。


android{
    ....

    signingConfigs {
            debug {
                storeFile file("祕鑰的文件位置,比如 c:\\aa.jks")
                storePassword "祕鑰密碼"
                keyAlias "別名"
                keyPassword "別名密碼"
        }
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章