如何接入移动应用?

通过简单的四个步骤 (开发者注册 -> 创建移动应用 -> 完善应用信息 ->应用分发),即可加入腾讯开放平台创建移动应用,并将您的应用上线发布到腾讯的移动平台上,轻松通过在应用宝、腾讯QQ、微信、腾讯手机管家、QQ空间、QQ游戏等场景分发聚合的腾讯移动开放平台获取丰厚的收益和巨大的流量。

第一步:开发者注册

1.请点击腾讯开放平台(http://open.qq.com)页面右上角的“登录”按钮,使用QQ帐号登录。如下图所示:

2. 登录成功后会跳转到注册页面,在注册页面需要提交公司或个人的基本资料。下图所示的是公司注册页面:

3.基本资料提交后,开发者需要进行邮箱验证。如下图所示:

4.验证完成后,开发者可以去创建应用,也可以继续完善资料(资料要完善到75%才能创建应用)。如下图所示:

5.开发者资料完善/维护

第二步:下载SDK

1.在首页点击移动应用

2.点击资料库

3.点击移动接入

4.点击API文档 -> SDK下载

5.下载iOS_SDK (下载arm64)就可以了

6.下载完iOS_SDK里面含有:其中1. TencentOpenAPI.framework打包了iOS SDK的头文件定义和具体实现。

2. TencentOpenApi_iOS_Bundle.bundle 打包了iOS SDK需要的资源文件。

第三步:创建应用

1.点击管理中心

2.创建移动应用

3.点击创建移动应用

第四步:iOS SDK环境搭建(创建完应用后你会得到APPID和APPKEY)

1.将iOS SDK中的TencentOpenAPI.framework和TencentOpenApi_IOS_Bundle.bundle文件拷贝到应用开发的目录下。
然后将TencentOpenAPI.framework从SDK的保存目录拖拽到工程导航视图(project navigator)中的Frameworks虚拟目录下。

2.添加SDK依赖的系统库文件。分别是”Security.framework”, “libiconv.dylib”,“SystemConfiguration.framework”,“CoreGraphics.Framework”、“libsqlite3.dylib”、“CoreTelephony.framework”、“libstdc++.dylib”、“libz.dylib”。

2.1点击target

2.2点击General

2.3点击+

2.4在输入框中输入关键字

2.5选中包,点击add添加,其他几个也一样

3. 在Xcode中打开工程配置文件,选择“Build Phases”一栏。

4.在Build Phases中选择展开Copy Bundle Resources

5.点击+

6. 选择“Add Other...”,进入iOS SDK文件所在目录,选择TencentOpenApi_IOS_Bundle.bundle,点击回车或者点击“Open”。

返回后看到TencentOpenApi_IOS_Bundle.bundle已经在“Copy Bundle Resources”中出现。

7.修改必要的工程配置属性。
在工程配置中的“Build Settings”一栏中找到“Linking”配置区,给“Other Linker Flags”配置项添加属性值“-fobjc-arc”。

8.点击Other Linker Flags

9.修改工程配置文件
在XCode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type”添加一条新的“URL scheme”,新的scheme = tencent + appid。如果您使用的是XCode3或者更低的版本,则需要在plist文件中添加。Demo中我们注册的appid是222222。如下图

10.点击URL Types

11.点击+

第五步:搭建完环境后就可以进行编程了

1.重写AppDelegate 的handleOpenURL和openURL方法openURL:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
return [TencentOAuth HandleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
return [TencentOAuth HandleOpenURL:url];
}

2.在需要书写有关代码的文件中添加头文件#import <TencentOpenAPI/TencentOAuth.h>

3.在appdelegate中定义一个TencentOAuth属性

4.添加TencentSessionDelegate代理

5.初始化redirectURI(这里需要填写注册APP时填写的域名。默认可以不用填写。建议不用填写。demo中注册时的地址是“www.qq.com”):
  _tencentOAuth.redirectURI = @"www.qq.com";

6.设置应用需要用户授权的API列表。 (其中关键字段要用宏方式来写,不能直接写成字符串)
(建议如果授权过多的话,可能会造成用户不愿意授权。这里最好只授权应用需要用户赋予的授权。):
  _permissions =  [[NSArray arrayWithObjects:k_OPENPERMISSION_GET_USER_INFO, kOPEN_PERMISSION_GET_SIMPLE_USER_INFO] retain];

7.调用SDK登录

登录时,调用TencetnOAuth对象的authorize方法:
[_tencentOAuth authorize:_permissions inSafari:NO];

8.登录完成后,会调用TencentSessionDelegate中关于登录的协议方法。

登录成功:
  @protocol TencentSessionDelegate <NSObject>
- (void)tencentDidLogin
{
    _labelTitle.text = @"登录完成";
    if (_tencentOAuth.accessToken && 0 != [_tencentOAuth.accessToken length])
    {
         // 记录登录用户的OpenID、Token以及过期时间
     NSLog(@"accessToken = %@", _oauth.accessToken);
      NSLog(@"opendid = %@", _oauth.openId);
         NSLog(@"expirationDate = %@", _oauth.expirationDate);

[_oauth getUserInfo]; // 获取用户信息,返回值是BOOL类型,需要执行getUserInfoResponse:方法才能获取用户资料

}
    else
        {
        _labelAccessToken.text = @"登录不成功 没有获取accesstoken";
        }
        }

非网络错误导致登录失败:
  @protocol TencentSessionDelegate <NSObject>
-(void)tencentDidNotLogin:(BOOL)cancelled
{
if (cancelled)
{
_labelTitle.text = @"用户取消登录";
}
else 
{
_labelTitle.text = @"登录失败";
}
}

网络错误导致登录失败:
 @protocol TencentSessionDelegate <NSObject>
-(void)tencentDidNotNetWork
{
_labelTitle.text=@"无网络连接,请设置网络";
}

9.通过getUsrInfoResponse:方法获取用户信息

//获取用户信息
- (void)getUserInfoResponse:(APIResponse *)response
{
    NSLog(@"nickname = %@", response.jsonResponse[@"nickname"]);
    //其中response.jsonResponse是存储用户信息的字典

NSLog(@"%@", response.jsonResponse);

}

第六步:

特别提示: 
1.由于登录是异步过程,这里可能会由于用户的行为导致整个登录的的流程无法正常走完,即有可能由于用户行为导致登录完成后不会有任何登录回调被调用。开发者在使用SDK进行开发的时候需要考虑到这点,防止由于一直在同步等待登录的回调而造成应用的卡死,建议在登录的时候将这个实现做成一个异步过程。
2.获取到的access token具有3个月有效期,过期后提示用户重新登录授权。
3. 第三方网站可存储access token信息,以便后续调用OpenAPI访问和修改用户信息时使用。如果需要保存授权信息,需要保存登录完成后返回的accessToken,openid 和 expirationDate三个数据,下次登录的时候直接将这三个数据是设置到TencentOAuth对象中即可。
获得:
[_tencentOAuth accessToken] ;
[_tencentOAuth openId] ;
[_tencentOAuth expirationDate] ;
设置:
[_tencentOAuth setAccessToken:accessToken] ;
[_tencentOAuth setOpenId:openId] ;
[_tencentOAuth setExpirationDate:expirationDate] ;

4. 建议应用在用户登录后,即调用getUserInfo接口获得该用户的头像、昵称并显示在界面上,使用户体验统一。

基于第三方QQ授权登录相关推荐

  1. 实现app第三方QQ授权登录

    关于QQ授权登录的实现,官网有详细描述,点击链接 . 这里根据自己的实现过程简单介绍一下整个过程: 1. 注册成为开发者,创建应用,获取appid,这个appid后面要用到.详情步骤请查看官网链接 2 ...

  2. 安卓_第三方QQ授权登录

    //利用腾讯开放平台,实现第三方授权登录 //老规矩,先上效果图 下面上源码链接: 链接: http://pan.baidu.com/s/1kULyg9T 密码: 232t 如果链接失效请咨询QQ:9 ...

  3. php中qq授权登录,ThinkPHP利用QQ互联实现网站第三方登录(QQ登录)

    接入QQ互联平台后,我们就可以让用户通过QQ帐号登录来登陆我们的网站,这样减少了注册的繁琐,可以更快 .更便捷的为了我带来更多的用户,下面我们一一起来看下如何通过QQ互联来实现第三方登录. ####申 ...

  4. 第三方平台授权登录— —QQ登录

    第三方平台授权登录- -QQ登录 本来前两天开开心心!心情乐乐!居然因为自己没有仔细看代码.居然被埋在这里两天!呜呜!怒火中烧!不行,我要去消灭 五碗大米饭 来平复我的心情! <程序运行图> ...

  5. Spring Security渐入佳境(四) -- 第三方应用授权登录

    (一)前言 (1.1)什么是单点登录? 单点登录(Single Sign On,简称SSO),它的用途在于,不管多么复杂的应用群,只要在用户权限范围内,那么就可以做到,用户只需要登录一次就可以访问权限 ...

  6. WEB接入第三QQ授权登录

    /**  * 项目: b2b-pc  * 文件: QQAuthority.java  * 包名: com.b2b.pc.auth  * 日期: 2017年11月24日下午8:39:03  * Copy ...

  7. Java实现QQ授权登录网站

    现在的很多网站 为了让用户可以快速登录 使用第三方QQ.微信.微博之类的授权登录     QQ互联的官网地址 1:先去QQ互联申请成为开发者 当审核通过之后  就可以创建一个应用 然后开发实际的登录效 ...

  8. 使用友盟快速集成QQ分享与QQ授权登录

    友盟官方文档 我采用的是手动集成友盟的官方文档.下载SDK进行集成. 解压缩,选择自己需要的文件进行加入到Android Studio中. 由于这里我只需要QQ,那就把QQ文件夹中的所有文件拷贝一份到 ...

  9. tp框架实现第三方QQ快捷登录

    最近公司更新商城网站平台,原来基础上新增许多功能,接到任务实现第三方QQ快捷登录,功能已实现,今天特梳理一下.大致流程首先在开发者开放平台QQ互联注册应用,把你的域名空间注册,一般域名空间备过案的比较 ...

  10. android 9 qq登录,【报Bug】安卓离线打包targetSdkVersion设置28时,在安卓9.0手机上QQ授权登录闪退...

    详细问题描述 [内容] 安卓离线打包,targetSdkVersion设置为28,在安卓9.0手机上运行,下面这段QQ授权登录代码会导致应用闪退或应用重启.低于9.0系统的手机不会出现这个问题.如果t ...

最新文章

  1. python2和pytho3切换_python2和pytho3切换_Python2和Python3共存安装
  2. 01-HTML基础与进阶-day5-录像262
  3. DRBD编译安装中出现的问题及解决小结
  4. Android开发笔记(一百五十四)OpenGL的画笔工具GL10
  5. [cloud][sdn] neutron了解
  6. JQuery EasyUI 1.5.1 美化主题大包
  7. 十种QQ在线客服代码
  8. ANSYS 静力 分析实例 悬臂梁
  9. 安装net_speeder
  10. 【整理】Android-Recovery Mode(recover模式详解)
  11. <caption>表格标题标签
  12. 微信开发者工具,出现“当前系统代理不是安全代理,是否信任?”
  13. Wind数据个性化定制抓取
  14. 番茄工作法总结-第一章:一次只做一件事
  15. 空字符串:“”和null的区别。
  16. UDF——已知入口压力和流量计算压降
  17. 安卓模拟器之王genymotion图文安装教程
  18. 国家级专新特精“小巨人”「皖仪科技」携手企企通,打造采购数字化平台成功上线
  19. Django-部署与启动
  20. 基于S32K144平台实现两种软件定时器

热门文章

  1. 目前开发人工日多少钱_行内人解读开发一个App需要多少钱?-今日头条
  2. 北京专科计算机学校排名及分数线,北京专科大学排名及分数线
  3. linux格式化u盘为ntfs格式,Linux上格式化U盘为NTFS格式
  4. 谈业务流程全生命周期管理支撑业务流程再造(2)
  5. android 涨水的动画,Android -- 贝塞尔实现水波纹动画(划重点!!)
  6. 今日头条的排名算法_今日头条旗下悟空问答的排名算法规则
  7. 区块链在供应链金融中的应用分析
  8. mysql服务器cpu使用率过高100%
  9. 智能合约开发 基于Hardhat(实操)
  10. python全栈开发第一天(HTML认识,HTML常用标签)