Line登錄踩過坑

第一次寫博客兜粘,目的在于總結一下最近做第三方登錄踩過的坑古话,陳述的觀點不一定都是正確的,但是我想能為遇到類似問題的小伙伴提供一些思路和啟迪刃唐,不足之處還請諒解酪呻!
雖然現(xiàn)在有友盟這樣集成登錄的平臺减宣,但是有的情況下卻不一定適用,而且玩荠,如果原生方式的登錄能夠成功漆腌,那么,集成登錄的方式自然水到渠成阶冈。第三方登錄的開發(fā)一般都需要經歷以下過程:去官網注冊開發(fā)者賬號闷尿,登錄賬號創(chuàng)建應用獲取一些key,將key配置到自己的項目進行開發(fā)女坑。這里的key在各個平臺略有差異填具,但實質都是類似的。下面我們就來一一感受匆骗。
以下為開發(fā)者必備的幾個鏈接:
line開發(fā)者官網
line登錄官方demo
line android sdk

1灌旧、注冊賬號

line有點奇怪,到目前為止我都沒有通過開發(fā)者官網找到注冊賬號的入口绰筛,我是使用line app來進行注冊的。如果使用line app出現(xiàn)網絡問題描融,請使用vpn铝噩。

2、創(chuàng)建應用

有了賬號之后窿克,可以去創(chuàng)建一個Channel骏庸,這個Channel我理解為一個應用。這個過程沒有什么坑年叮,如實填寫就好具被,最終會獲得一個Channel ID,這個在后續(xù)開發(fā)中會用到只损。


Channel的基本信息

接著一姿,需要進入Technical configuration,填寫一些配置信息跃惫。Android需要填寫三項叮叹,包名和簽名必填。

這里寫圖片描述

這里出現(xiàn)了我在開發(fā)過程中遇到的最大的坑爆存。由于我在做line登錄之前已經做了微信登錄蛉顽,微信后臺也要需要填寫簽名,微信提供了獲取簽名的app先较,非常方便携冤。于是乎悼粮,這里的簽名我就使用了做微信登錄時獲取到的,然而事實證明曾棕,二者是南轅北轍的扣猫。如果這里的簽名錯了,在其他條件都正常的情況下睁蕾,網頁授權登錄的方式可以成功苞笨,但是調用line app進行授權登錄是一定會失敗的。
這里提供兩種方法獲取SHA1:
第一子眶,使用命令行keytool -list -v -keystore + keystore的路徑瀑凝,eg:
keytool -list -v -keystore "D:\Users\cyq7on.android\debug.keystore"。
第二個方法完全來自于一位網友:
PS:為了避免注冊時弄錯簽名臭杰,建議直接用打包出來的apk查看簽名粤咪,具體如下:
1) 將apk修改后綴為 .rar文件后解壓;
2) 進入解壓后的META-INF目錄渴杆,該目錄下會存在文件CERT.RSA
3) 在該目錄下打開cmd寥枝,輸入命令 :keytool -printcert -file CERT.RSA
這里將會顯示出MD5和SHA1簽名。
可以在評論區(qū)找到這位網友

3磁奖、配置工程囊拜,進行開發(fā)

準備工作終于完成,現(xiàn)在可以進入正式開發(fā)了比搭。
建好工程之后冠跷,將line-android-sdk中的jar包拷進libs文件夾,將.so文件拷進jniLibs文件夾身诺,如果沒有jniLibs文件夾蜜托,可在main目錄下新建一個,工程結構如下:


這里寫圖片描述

除此之外霉赡,AndroidManifest里面還需要進行配置:

<!-- LINE SDK Settings -->
        <activity
            android:name="jp.line.android.sdk.activity.LineAuthCompleteActivity"
            android:configChanges="keyboard|orientation"
            android:exported="true"
            android:screenOrientation="sensor" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data android:scheme="line.Channel ID" />
            </intent-filter>
        </activity>
        <activity
            android:name="jp.line.android.sdk.activity.WebLoginActivity"
            android:configChanges="keyboard|orientation"
            android:exported="false"
            android:screenOrientation="sensor" >
        </activity>

        <meta-data
                android:name="jp.line.sdk.ChannelId"
                android:value="Channel ID" />
        <meta-data
            android:name="jp.line.sdk.AuthScheme"
            android:value="line.Channel ID" />

Channel ID替換為自己的就可以了橄务。
登錄的核心代碼:

LineAuthManager authManager = LineSdkContextManager.getSdkContext().getAuthManager();
        authManager.login(this).addFutureListener(
                new LineLoginFutureListener() {
                    @Override
                    public void loginComplete(LineLoginFuture future) {
                        switch (future.getProgress()) {
                        case SUCCESS:
                            displayCroutonOnMainThread("Logged in!", Style.INFO);
                            logger.info("Login success!");
                            break;
                        case CANCELED:
                            displayCroutonOnMainThread("Don't cancel login!", Style.ALERT);
                            logger.info("Login canceled!");
                            break;
                        default:
                            displayCroutonOnMainThread("An error occurred. Please try again.", Style.ALERT);
                            logger.info("Login error!");
                            break;
                        }
                    }
                });

上述代碼來源于官方demo,這里注意一下displayCroutonOnMainThread方法穴亏,顧名思義蜂挪,我們可以看出,loginComplete方法其實是回調在子線程的嗓化。這里我有一點疑惑锅劝,我故意在子線程里操作了UI,結果程序沒有崩潰蟆湖,希望有大神可以指點一二故爵。
使用authManager.login方法,如果手機安裝了line app則會調用app進行授權登錄,反之則使用網頁授權登錄诬垂。而另一個方法劲室,loginByAccount則無論手機是否安裝line app,都會使用網頁授權登錄的方式结窘。此外很洋,要登出也有一個方法,authManager.logout()隧枫。
如果登錄出現(xiàn)錯誤喉磁,可以使用如下代碼獲取錯誤信息:

public void loginComplete(LineLoginFuture future) {
    logger.info("Login error! " + future.getCause().getMessage());
} 

如果你能成功登錄自己的賬號,換一個其他賬號卻失敗官脓,那么最有可能是配置問題协怒。解決方法有二:
第一,在Channel的Basic information中將應用的狀態(tài)由DEVELOPING改為PUBLISHED卑笨;


這里寫圖片描述

第二孕暇,在Channel的Roles中添加需要測試的用戶。


這里寫圖片描述

line登錄踩過的坑大致就是這些了赤兴,有問題歡迎指教和探討妖滔!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市桶良,隨后出現(xiàn)的幾起案子座舍,更是在濱河造成了極大的恐慌,老刑警劉巖陨帆,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曲秉,死亡現(xiàn)場離奇詭異,居然都是意外死亡歧譬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門搏存,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瑰步,“玉大人,你說我怎么就攤上這事璧眠∷踅梗” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵责静,是天一觀的道長袁滥。 經常有香客問我,道長灾螃,這世上最難降的妖魔是什么题翻? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮腰鬼,結果婚禮上嵌赠,老公的妹妹穿的比我還像新娘塑荒。我一直安慰自己,他們只是感情好姜挺,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布齿税。 她就那樣靜靜地躺著,像睡著了一般炊豪。 火紅的嫁衣襯著肌膚如雪凌箕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天词渤,我揣著相機與錄音牵舱,去河邊找鬼。 笑死掖肋,一個胖子當著我的面吹牛仆葡,可吹牛的內容都是我干的。 我是一名探鬼主播志笼,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼沿盅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了纫溃?” 一聲冷哼從身側響起腰涧,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎紊浩,沒想到半個月后窖铡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡坊谁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年费彼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片口芍。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡箍铲,死狀恐怖,靈堂內的尸體忽然破棺而出鬓椭,到底是詐尸還是另有隱情颠猴,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布小染,位于F島的核電站翘瓮,受9級特大地震影響,放射性物質發(fā)生泄漏裤翩。R本人自食惡果不足惜资盅,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧律姨,春花似錦振峻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至荣赶,卻和暖如春凤价,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拔创。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工利诺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人剩燥。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓慢逾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親灭红。 傳聞我的和親對象是個殘疾皇子侣滩,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,845評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)变擒,斷路器君珠,智...
    卡卡羅2017閱讀 134,637評論 18 139
  • 服務器https配置 配置https操作說明文檔 1、查看服務器環(huán)境配置(tomcat和apache合并使用) 2...
    南京楊小兵閱讀 8,822評論 0 9
  • 寫在前面 今天使用高德地圖為應用添加Key的時候娇斑,發(fā)現(xiàn)有一項需要用到安全碼SHA1策添,而SHA1存在于Keystor...
    代碼咖啡閱讀 26,710評論 5 34
  • 國慶假的最后一天,我走在濱江路上毫缆。一位白發(fā)蒼蒼的老太婆坐在輪椅上唯竹,周圍有三個年輕人。聽見老太婆說了一句話苦丁,我寧愿過...
    一片祥和閱讀 161評論 0 0