1.登錄公眾賬號設(shè)置OAuth2.0 2.設(shè)置菜單按鈕URL為OAuth鏈接 3.頁面后臺獲取: public String getopenId() { HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html"); String code = request.getParameter("code"); String urlstr = "https://api、weixin、qq、com/sns/oauth2/access_token?appid=appIdsecret=secretcode=" + code + "grant_type=authorization_code"; JSONObject json; try { json = JSONObject.fromObject(HTTPTools.postToGetJson(urlstr)); openId = json.getString("openid"); } catch (Exception e) { // e.printStackTrace(); return ""; ... 1.登錄公眾賬號設(shè)置OAuth2.0 2.設(shè)置菜單按鈕URL為OAuth鏈接 3.頁面后臺獲取:public String getopenId() { HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html"); String code = request.getParameter("code"); String urlstr = "https://api、weixin、qq、com/sns/oauth2/access_token?appid=appIdsecret=secretcode=" + code + "grant_type=authorization_code"; JSONObject json; try { json = JSONObject.fromObject(HTTPTools.postToGetJson(urlstr)); openId = json.getString("openid"); } catch (Exception e) { // e.printStackTrace(); return ""; } return openId; }
堅守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都隧道混凝土攪拌車小微創(chuàng)業(yè)公司專業(yè)提供成都定制網(wǎng)站營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
Android實現(xiàn)第三方QQ登陸的開放流程為:
一. QQ登錄目前采用OAuth2.0標(biāo)準(zhǔn)協(xié)議來進(jìn)行用戶身份驗證和獲取用戶授權(quán)。整個流程如下所述,這里比如一個應(yīng)用A
可以使用QQ賬戶登陸。
1. 用戶訪問客戶端的應(yīng)用,試圖操作用戶存放在服務(wù)提供方的資源。比如用戶用QQ賬戶登錄 應(yīng)用 A程序,同時可以獲
得用戶昵稱頭像等保存在騰訊服務(wù)器的用戶信息。
2. 輸入QQ賬號后,應(yīng)用A后向服務(wù)提供方 (騰訊) (Request Token)。 請求一個臨時令牌
3. 服務(wù)提供方 (騰訊)(應(yīng)用A)的身份后,授予一個臨時令牌。驗證客戶端
4. 客戶端(應(yīng)用A)獲得臨時令牌后,將用戶引導(dǎo)至服務(wù)提供方(騰訊)的授權(quán)頁面請求用戶授權(quán)。在這個過程中將臨時令牌和客戶端的 回調(diào)連接發(fā)送給服務(wù)提供方(騰訊)。
5. 用戶在服務(wù)提供方(騰訊)的網(wǎng)頁上輸入用戶名和密碼,然后授權(quán)該客戶端(應(yīng)用A)訪問所請求的資源。
6. 授權(quán)成功后,服務(wù)提供方(騰訊)引導(dǎo)用戶返回到客戶端(應(yīng)用A)提供的回調(diào)頁面。
7. 客戶端(應(yīng)用A)根據(jù)臨時令牌從服務(wù)提供方(騰訊)那里獲取訪問令牌 (Access Token)。
8. 根據(jù)訪問令牌 (Access Token)獲得對應(yīng)用戶身份的openid,
9. 然后客戶端(應(yīng)用A)根據(jù)訪問令牌 (Access Token)與openid調(diào)用OpenAPI,來請求訪問或修改用戶授權(quán)的資源(比如昵稱用戶頭像等經(jīng)過用戶授權(quán)的信息)。
10.拿到訪問令牌 (Access Token)之后,客戶端(應(yīng)用A)可以保存起來,下次就不用再向服務(wù)提供方(騰訊)請求授權(quán),直接就可以使用該賬戶授權(quán)的資源,相當(dāng)于保存了用戶名和密碼,但是真正的用戶名和密客戶端(應(yīng)用A)并不知道。
比如一個信息發(fā)布的網(wǎng)站,可以使用QQ賬號登錄,用戶通過安全頁面輸入QQ賬號信息后顯示登陸成功,同時詢問用戶
是否允許該網(wǎng)站使用用戶的一些信息,比如資料,相冊等,經(jīng)過用戶確認(rèn)后該網(wǎng)站可以拿到用戶授權(quán)的信息。同時拿到訪
問令牌 (Access Token),以后該網(wǎng)站就可以用這個訪問獲得該用戶的這些授權(quán)信息,而不需要再次輸入賬戶信息。一般該
網(wǎng)站也要提供刪除這個訪問令牌的入口。這樣就可以很方便的把用戶愿意提供的信息拿到這個信息發(fā)布網(wǎng)站使用,而用戶
不需要再次登記錄入。
二.QQ 為Android移動設(shè)備開發(fā)提供QQ登陸的開發(fā)包,對上述的過程進(jìn)行的封裝,對開發(fā)者來說可以方便的使用。要真正開發(fā)一個使用QQ賬戶登錄的App,就需要在騰訊社區(qū)開放平臺注冊應(yīng)用, 申請對應(yīng)的 appid 和appkey ,這個開發(fā)App 時候要用到。
1. 可以在騰訊開放API站點下載最新的QQ登錄API庫文件和Demo。
2.下載后的Demo工程如下,導(dǎo)入了庫文件tencent_openapi.jar如下圖一所示。
Demo介紹了兩種登陸方式,手機瀏覽器和WebView,傳入不同的參數(shù),進(jìn)入不同的登錄方式,然后輸入賬戶信息后會
根據(jù)用戶選擇返回不同的結(jié)果。開發(fā)者可以參考這些對應(yīng)的代碼即可完成授權(quán)登錄的功能開發(fā)。
1. 下載SDK。
SDK下載
點擊SDK for 移動應(yīng)用接入
SDK列表
直接點擊Android_SDK_V3.1.0 就可以下載
2. 導(dǎo)入jar包
下載完成后是個壓縮包,解壓后的結(jié)果就是下面這個樣子,我下載的版本是3.1.0,如果你下載的版本不是這個版本或許有所不同。
解壓
將jar文件夾下的兩個jar包導(dǎo)入到android studio中,
導(dǎo)入jar包
然后右擊jar包,在菜單的下面會有個"Add as Library..."點擊它,將這兩個jar包加入到lib庫。
3. 配置AndroidManifest.xml文件
剛剛導(dǎo)入的jar包里有已經(jīng)實現(xiàn)好的Activity(就是點擊使用QQ登錄后彈出的授權(quán)Activity),所以需要在清單文件中配置一下
在application節(jié)點下添加兩個activity節(jié)點,內(nèi)容如下:
activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true"
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="222222" /
/intent-filter
/activity
activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
/activity
注意!其中的 data android:scheme=”222222” 你需要將這個值替換為你自己創(chuàng)建的應(yīng)用的appid。222222是騰訊給的測試appid,僅能夠測試使用。
當(dāng)然了,使用qq登錄少不了權(quán)限
uses-permission android:name="android.permission.INTERNET" /
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /
1.登錄公眾賬號設(shè)置OAuth2.0
2.設(shè)置菜單按鈕URL為OAuth鏈接 3.頁面后臺獲取:
public String getopenId() {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html");
String code = request.getParameter("code");
String urlstr = "https://api、weixin、qq、com/sns/oauth2/access_token?appid=appIdsecret=secretcode=" + code + "grant_type=authorization_code";
JSONObject json;
try {
json = JSONObject.fromObject(HTTPTools.postToGetJson(urlstr));
openId = json.getString("openid");
} catch (Exception e) {
// e.printStackTrace();
return "";
}
return openId;
}
調(diào)用第三方提供的sdk接口,比如說淘寶,官方會提供一個庫,你把庫引入,然后調(diào)用接口就可以了
分享題目:第三方登錄android,第三方登錄授權(quán)分享的內(nèi)容什么意思
URL分享:http://chinadenli.net/article46/dsdsceg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站維護(hù)、標(biāo)簽優(yōu)化、網(wǎng)站收錄、品牌網(wǎng)站制作、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)