Line受權登陸及分享

Line登錄受權

官方文檔
developers.line.biz/en/docs/and…
自定義登錄按鈕
developers.line.biz/en/docs/and…java

集成Line SDK
repositories {
   ...
   jcenter()
}
dependencies {
    ...
    implementation 'com.linecorp:linesdk:5.0.1'
    ...
} 
複製代碼
java版本
android {
  compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
複製代碼
配置

響應點擊
/*吊起登陸*/
fun login(activity: Activity) {
    Thread(Runnable {
        try {
            // 調起line app受權登陸
            var params = LineAuthenticationParams.Builder().scopes(Arrays.asList(Scope.PROFILE)).build()
            var loginIntent = LineLoginApi.getLoginIntent(activity, "channel id", params)
// var loginIntent = LineLoginApi.getLoginIntentWithoutLineAppAuth(activity, "channel id", params)
            activity.startActivityForResult(loginIntent, REQUEST_CODE_LINE)
        } catch (e: Exception) {
            Log.e("ljwx-line-error-", e.toString())
        }
    }).start()
}
複製代碼
受權結果
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    if (requestCode == LoginLine.REQUEST_CODE_LINE) {
            handleResult(data, object : ThirdLoginCallback {
                override fun success(info: ThirdLoginSuccessInfo?) {
                    info?.let {
                        loginThird(2, info.userID, info.diaplayName, info.avater)
                    }
                }

                override fun fail(info: ThirdLoginFailInfo?) {
                    context!!.toast(info?.message!!)
                }
            })
        }
}

/*處理結果*/
    fun handleResult(data: Intent?, callback: ThirdLoginCallback) {
        var result = LineLoginApi.getLoginResultFromIntent(data)
        when (result.responseCode) {
            LineApiResponseCode.SUCCESS -> {
                try {
                    var userId = result.lineProfile!!.userId
                    var displayName = result.lineProfile!!.displayName
                    val successInfo = ThirdLoginSuccessInfo()
                    successInfo.userID = userId
                    successInfo.diaplayName = displayName
                    callback.success(successInfo)
                } catch (e: Exception) {
                    e.printStackTrace()
                    Log.e("ljwx-line-exception-", e.toString())
                }
            }
            LineLoginResult.CANCEL -> {
                Log.e("ljwx-line-cancel-", "cancel")
            }
            else -> {
                val faliInfo = ThirdLoginFailInfo()
                faliInfo.message = result.errorData.message
                callback.fail(faliInfo)
                Log.e("ljwx-line-fail-", faliInfo.code + ":" + faliInfo.message)
            }
        }
    }
複製代碼

特別提醒,這裏要改成 published 狀態,不然沒法受權成功

Line分享

try {
    val scheme = "line://msg/text/" + data.share_url + "/n" + data.share_title
    val uri = Uri.parse(scheme)
    startActivity(Intent(Intent.ACTION_VIEW, uri))
} catch (e: Exception) {

}
複製代碼
相關文章
相關標籤/搜索