日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android qq 登陆 简书,第三方登录 — QQ登录

發布時間:2023/12/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android qq 登陆 简书,第三方登录 — QQ登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一. 首先需要下載騰訊qq登錄所需的庫,下載地址是http://open.qq.com/。需要用到的有TencentOpenAPI.framework 和TencentOpenApi_IOS_Bundle.bundle,將兩者加入工程。

二.下面就來實現QQ第三方登錄1.聲明屬性,且viewcontroller實現TencentSessionDelegate@interface LoginViewController :UIViewController@property (nonatomic,strong)TencentOAuth *tencentOAuth;

@property (nonatomic,strong)NSMutableArray* permission;

//點擊qq登錄

- (IBAction)touchQQLoginButton:(id)sender;

@end

2.iOS中,如果iphone沒有安裝QQ客戶端,當用qq進行第三方登錄時會提示要安裝qq,這樣會影響app上架,

所以,應該先檢測一下手機上時候安裝了qq,沒有安裝就需要隱藏qq的第三方登錄按鈕。

//判斷是否安裝了qq

self.tencentOAuth =? [[TencentOAuth alloc]initWithAppId:QQid andDelegate:self];

BOOL isInstallQQ = [TencentOAuth iphoneQQInstalled];

if (isInstallQQ ==NO) {

[self.QQButton setHidden:YES];

}

其中initWithAppId:QQid中的QQid,是申請的騰訊開放平臺的appid。

3.使用qq第三方登錄,大概需要三部:

1)獲取認證

2)獲取用戶信息

3)登錄

下面我們來單步分析

1)獲取認證。比如點擊了 使用qq登錄按鈕

#pragma mark ----------- 點擊qq登錄 ----------------

- (IBAction)touchQQLoginButton:(id)sender {

self.tencentOAuth =? [[TencentOAuth alloc]initWithAppId:QQid andDelegate:self];

self.permission = [NSMutableArrayarrayWithObjects:@"get_user_info",@"get_simple_userinfo",nil];

[self.tencentOAuth authorize:self.permission inSafari:NO];

}

登錄結束會調用delegate

#pragma mark --------- qq登錄狀態回調 ------

//登錄完成后,會調用TencentSessionDelegate中關于登錄的協議方法。

- (void)tencentDidLogin

{

NSLog(@"qq登錄完成");

if (_tencentOAuth.accessToken &&0 != [_tencentOAuth.accessToken length])

{

//? 記錄登錄用戶的OpenID、Token以及過期時間

_labelAccessToken.text = _tencentOAuth.accessToken;

NSLog(@"token===%@",[_tencentOAuth accessToken] );

NSLog(@"openId===%@",[_tencentOAuth openId]) ;//這個是用戶的唯一id,使用它來登錄自己的服務器,因為它不像微信登錄那樣和userInfo一起打印出來,所以需要把它變成一個全局變量才能傳給后臺

NSLog(@"appid === %@",[_tencentOAuth appId]);

[self getQQUserInfo];//自己實現的方法,得到用戶信息,見下一步說明。

}

else{

_labelAccessToken.text = @"登錄不成功沒有獲取accesstoken";

}

}

//非網絡錯誤導致登錄失敗:

-(void)tencentDidNotLogin:(BOOL)cancelled

{

NSLog(@"非網絡錯誤導致登錄失敗");

if (cancelled)

{

NSLog(@"用戶取消登錄操作");

}

else

{

}

}

//網絡錯誤導致登錄失敗:

-(void)tencentDidNotNetWork

{

NSLog(@"網絡錯誤導致登錄失敗:");

}

2)獲取用戶信息

#pragma mark ---------- 獲取qq用戶信息 ----

- (void)getQQUserInfo {

if(![_tencentOAuth getUserInfo]){

NSLog(@"獲取qq用戶信息失敗");

}

}

獲取用戶信息結束回調

#pragma mark -------- qq用戶信息回調 -------

/**

* Called when the get_user_info has response.

*/

- (void)getUserInfoResponse:(APIResponse*) response {

if (response.retCode ==URLREQUEST_SUCCEED)

{

NSMutableString *str=[NSMutableString stringWithFormat:@""];

for (id keyin response.jsonResponse) {

[strappendString: [NSString stringWithFormat:@"%@:%@\n",key,[response.jsonResponseobjectForKey:key]]];

}

MyNSLog(@"%@",str);

NSString* url = [[NSString alloc]initWithString:[response.jsonResponseobjectForKey:@"figureurl_qq_2"]];

NSString* nickname = [[NSString alloc]initWithString:[response.jsonResponseobjectForKey:@"nickname"]];

if (NO_VALUE(url) ||NO_VALUE(nickname)) {

MyNSLog(@"獲取qq用戶信息失敗");

}else{

NSNumber* typeQQ = [NSNumber numberWithInteger:1];

[selflogin:self.openIDandNickname:nickname andAvatar:url ?andType:typeQQ];//自己的登錄函數

}

}

else

{

[self showHint:response.errorMsg];

}

}

3) 登錄自己的服務器

[self login:self.openID andNickname:nickname andAvatar:url andType:typeQQ];//自己的登錄函數

三.當從qq認證返回我們自己的app,需要在appdelegate中實現

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

if ([url.host isEqualToString:@"qzapp"]) {

return? [TencentOAuth HandleOpenURL:url];

}

return YES;

}

-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url{

if ([url.host isEqualToString:@"qzapp"]) {

return? [TencentOAuth HandleOpenURL:url];

}

}

注意事項:

1. 需要特別注意使用第三方登錄對審核帶來的影響,如果審核人員的設備未安裝QQ,如果是跳轉到下載微信和QQ的頁面,可能會被拒絕。

2. app發布前,只有添加進測試帳號的帳號才能登錄成功,否則會報錯。

3. 開發完成后需要提交審核,否則只能允許100個測試賬號進行登錄。

我是個小白,文章如有錯誤,請指出,謝謝。

總結

以上是生活随笔為你收集整理的android qq 登陆 简书,第三方登录 — QQ登录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。