APP唤起QQ实现三方授权登录 iOS_SDK环境搭建

APP唤起QQ实现三方授权登录 iOS_SDK环境搭建

QQ登录iOS SDK 封装了QQ登录的登录授权以及大部分OpenAPI,应用只需要修改相应参数,不需要理解验证授权流程,即可快速实现QQ登录功能。
iOS平台上(iPad,iPhone,iPod)的应用,请在申请appid,appkey后,使用QQ互联提供的iOS SDK。
1.5版本增加 QQAPI 对象,以支持手机QQ的调用。以前申请过 APPID 类似“QQXXXXXXXX”的开发商,建议重新申请。为了兼容旧版本的手机QQ,需要增加 URL Scheme,QQ + 十六进制新AppId,不足八位在首部补0。(如 appid=222222 则 scheme=QQ0003640E)
详情请参考iOS_SDK_API_使用说明
本SDK仅适用于移动应用,即基于使用Implicit_Grant方式获取Access_Token接入的应用。

变更历史

可参考文档 iOS_SDK历史变更

1. iOS SDK 下载

请到SDK下载页面下载最新版本QQ登录iOS SDK。

2. iOS SDK目录结构

iOS SDK包中带有两个文件:
1. TencentOpenAPI.framework打包了iOS SDK的头文件定义和具体实现。
2. TencentOpenApi_iOS_Bundle.bundle 打包了iOS SDK需要的资源文件。(从sdk3.3.5版本开始,此文件可以不要了)

3. 将iOS SDK文件添加到工程中

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

注意TencentOpenAPI.framework和TencentOpenApi_IOS_Bundle.bundle必须放到应用的资源的根目录下,否则会出现资源无法加载的问题。

2. 在弹出的对话框中勾选“Create groups for any added folders”,去掉“copy items into destination group’s folder(if needed)”,在Add to targets中选择要加入SDK的target之后点击finish。完成之后就将iOS SDK的framework文件加入了开发工程中。


3. 添加SDK依赖的系统库文件。分别是“Security.framework”,“libiconv.dylib”,“SystemConfiguration.framework”,“CoreGraphics.Framework”、“libsqlite3.dylib”、“CoreTelephony.framework”、“libstdc++.dylib”、“libz.dylib”。
在Xcode中打开工程配置文件,选择“summary”一栏。


4. 在“summary”中选择“Linked Frameworks and Libraries”一栏,点击“+”图标。


5. 直接在默认库文件中选择后点击“Add”,下图以添加“SystemConfiguration.framework”为例:



6. 返回后看到“SystemConfiguration.framework”已经在“Linked Frameworks and Libraries”中出现。

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


8.在“Build Phases”中选择展开“Copy Bundle Resources”一栏,并点击“+”图标


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



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


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

4. 修改必要的代码

4.1 修改工程配置文件

(1)配置URL Scheme

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

(2)配置LSApplicationQueriesSchemes

如下图对照sdkDemo的配置,进行填写,根据备注中的说明可以酌情删减。

互联SDK中使用的scheme备注
mqq://比较常用
mqqapi://比较常用
tim://比较常用
mqqopensdknopasteboard://比较常用
mqqopensdkapiV2://比较常用
mqqgamebindinggroup://判断设备上QQ是否支持绑定群
mqqopensdkavatar://判断设备上QQ是否支持设置头像
mqqopensdkfriend://判断设备上QQ是否支持添加好友
mqqopensdklaunchminiapp://判断设备上QQ是否支持启动小程序
mqzone://判断设备上是否安装了QQ空间
tencentapi.qq.reqContent://只在 [TencentApiInterface isTencentAppSupportTencentApi]方法中用到
tencentapi.qzone.reqContent://只在 [TencentApiInterface isTencentAppSupportTencentApi]方法中用到
mqqthirdappgroup://判断设备上QQ是否支持第三方应用加群
mqqopensdkminiapp://判断设备上QQ是否支持小程序的相关API

如果这个URL Scheme没有正确配置的话,跳到手Q会报这个错误:

4.2 重写AppDelegate 的handleOpenURL和openURL方法

openURL:

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

handleOpenURL:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
   return [TencentOAuth HandleOpenURL:url];
}

注意:Xcode11之后引入的SceneDelegate,如果业务的应用不支持多窗口可以直接删除项目info.plist文件中的Application Scene Manifest的配置数据,如果要支持多窗口,需要对系统AppDelegate和SceneDelegate做一些异化处理,总之QQ回来的URL交给TencentOauth来handle。

4.3 在代码中实现TencentSessionDelegate协议中的方法

具体协议可以参照TencentOpenAPI.framework /Headers中的TencentOAuth.h文件。

4.4 初始化iOS SDK API数据对象TencentOAuth。

(1) 创建TencentOAuth并初始化其appid,demo为222222。delegate为实现TencentSessionDelegate的对象:

[TencentOAuth setIsUserAgreedAuthorization:YES];

_tencentOAuth = [[TencentOAuth alloc] initWithAppId:@"222222", andDelegate:self];

这里delegate不能为空

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

_tencentOAuth.redirectURI = @"www.qq.com";

(3)设置应用需要用户授权的API列表。 (建议如果授权过多的话,可能会造成用户不愿意授权。这里最好只授权应用需要用户赋予的授权。):

_permissions = [[NSArray arrayWithObjects:@"get_user_info",@"get_simple_userinfo", @"add_t", nil] retain];

4.5设置用户是否同意隐私协议。

3.5.7版本更新后,在初始化SDK之前必须设置用户同意授权隐私协议,如果没有设置或者设置为NO(不同意)则无法使用SDK的接口,设置方式如下:

[TencentOAuth setIsUserAgreedAuthorization:YES];

5. 调用SDK登录

1.登录时,调用TencetnOAuth对象的authorize方法:

[_tencentOAuth authorize:_permissions inSafari:NO];

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

@protocol TencentSessionDelegate <NSObject>
- (void)tencentDidLogin
{
   _labelTitle.text = @"登录完成";
   if (_tencentOAuth.accessToken && 0 != [_tencentOAuth.accessToken length])
   {
   // 记录登录用户的OpenID、Token以及过期时间
      _labelAccessToken.text = _tencentOAuth.accessToken;
   }
   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=@"无网络连接,请设置网络";
}

3. 登录成功后,即可获取到access token和openid。accessToken和 openid保存在TencentOAuth对象中。可以通过相应的属性方法直接获得。

[_tencentOAuth accessToken] ;
[_tencentOAuth openId] ;

特别提示:
1.由于登录是异步过程,这里可能会由于用户的行为导致整个登录的的流程无法正常走完,即有可能由于用户行为导致登录完成后不会有任何登录回调被调用。开发者在使用SDK进行开发的时候需要考虑到这点,防止由于一直在同步等待登录的回调而造成应用的卡死,建议在登录的时候将这个实现做成一个异步过程。
2.获取到的access token具有30天有效期,过期后提示用户重新登录授权。
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接口获得该用户的头像、昵称并显示在界面上,使用户体验统一。

APP开发实现QQ登录 APP唤起QQ实现三方授权登录 qqLogin QQ登录 通过网页回调

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

qqLogin QQ登录 通过网页回调

登录结果及授权参数将通过 URL Query 传到给你指定的链接

核心代码示例,详情参阅demo

jsBridge.qqLogin("./u.cshtml");
/*
如果登录成功会跳转到链接
u.cshtml?openid=xxxx&access_token=xxxx&userinfo=xxxx
userinfo 参数是 JSON.stringify(userinfo) 的 URLEncode 编码
*/

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.qqLogin("./u.cshtml");
/*
如果登录成功会跳转到链接
u.cshtml?openid=xxxx&access_token=xxxx&userinfo=xxxx
userinfo 参数是 JSON.stringify(userinfo) 的 URLEncode 编码
*/

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.qqLogin("./u.cshtml");
/*
如果登录成功会跳转到链接
u.cshtml?openid=xxxx&access_token=xxxx&userinfo=xxxx
userinfo 参数是 JSON.stringify(userinfo) 的 URLEncode 编码
*/

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

用什么办法可以快速运营好自己的微信小程序?

微信是我们经常用的工具,现在大城市的大部分人都离不开微信,基于微信生态的一些商业行为就变得非常的现实。那么怎么可以快速的实现在微信内赚钱或开展业务呢?我们可以加入微信生态,而微信小程序就是其中非常重要的一个环节,是非常值得尝试的。

但是微信小程序之前制作开发需要成本,导致很多公司不会花费太大力气在上面,个人更加难以接受,不过微信现在支持H5打包小程序了,只要您有一个网站就可以打包制作小程序,有网站就可以在线一键生成小程序。

微信小程序的推广方案有很多,依据小程序的特点给大家分析分析,然后罗列出核心的推广方案,大家能够依据自己的目标客户、行业等实际情况来选用合适高效的推广方案。

一、小程序优点分析
微信小程序最大的优点就是能够在微信好友之间、微信群里友好转发,然后能够直接打开使用,不想要下载,非常方便,另外一种是无惧环境的小程序2维码,能够用于任意环境推广,因此我们要充分利用小程序的这个优点。假设您在微信推广移动应用,有可能被微信屏蔽,就算不屏蔽,也要跳转到应用宝下载,然后假设用户没有安装应用宝,还要先下载应用宝,假设用户对手机应用不太了解,都转晕了,因此推广难度还是蛮大的,通过我这样描述,相信大家应该知道小程序推广比移动应用推广是不是方便太多了。下面给大家总结下小程序推广的方案。
1、微信群聊推广
既然微信转发是小程序的优点,这么肯定要注重这个方案,引导用户进行转发,很多人会问,用户如何会无缘无故转发呢?这个就想要大家发挥了,大家能够推出一些优惠活动、利用趣味活动、给分享者奖励等。
朋友圈推广
朋友圈一直是微商

推广的关键地盘,小程序虽然不能直接转发到朋友圈,但有2维码,2维码是一个图片,因此大家能够按照微商的做法,结合图片、文案和2维码发朋友圈,当然,只有自己发肯定是不行的,一定要想办法让更多人帮忙转发,比如给发朋友圈的用户进行奖励、打折、集赞活动等。
线下门店推广
小程序运营最好的方案是线上架发布下结合,假设您有线下门店,能够把小程序贴到门店显眼位置,通过优惠活动适当引导用户注册小程序会员等。
使用小程序分销功能
说到分销,大家应该都大概知道,其实质就是让广大用户成为自己无底薪的业务员,帮自己推广宣传,小程序现在最多允许2级分销,通过返佣奖励激励用户转发推广,假设产品质量能够、返佣力度够大,效果应该差不了。
使用小程序拼团砍价功能相信大家都用过拼多多的拼团砍价功能,经常有朋友让您帮忙砍价,一起拼团,甚至能够理解拼多多就是通过拼团砍价做起来的,因此,大家应该都了解他的威力,一传10、10传百,增长速度非常恐怖,只要优惠折扣够大,绝对比花钱做付费广告推广划算。
公众号引流
假设您已经有很多粉丝的公众号,能够在公众号菜单上链接您的小程序,也能够发一些带小程序链接的公众号文章,把用户粉丝引流到小程序。
付费广告推广
微信推出很多付费广告,如公众号文章广告、朋友圈广告等能够把小程序推广给更多用户。除了微信付费广告之外,各种各样实体广告推广都是能够的,是因为2维码适合任意推广环境,如广告牌、电视、自媒体等。
附近小程序
假设您有实体门店,能够在小程序里面添加附近小程序,只要用户在您门店附近,能够通过附近小程序找到您。
其他第3方官方
如您有网站、微博号等,能够在里面发布小程序码,对用户进行引流。
产品推广
通过花钱在赠送产品上印上小程序2维码和广告语,如赠送衣服、雨伞、台历等产品上贴上2维码和广告语,免费赠送。
会员制留存用户
通过推广,用户知道了您的小程序,怎么留存呢?能够通过会员制、优惠折扣等方案留存客户,让用户成为您的忠实粉丝,如充值赠送金额、会员等级越高折扣越大等。
小程序推广方案大概如上面所述,大家能够依据自己的客户群体、自己拥有的资源等进行选用,把时间价格花在刀刃上,在推广的时候一定要注意方案方法,不要硬来。

软件开发APP外包开发一般容易受到制约的几个要素和原因

随着移动互联的深入发展,特别是疫情这3年来的持续加持,APP开发制作已经成为一种全新的生产力方式,越来越多的企业,无论哪个行业,都把移动互联系统,业务线上化纳入了发展规划。无论是电子化的OA内部管理,内部高效沟通,内部安全沟通,还是生产系统的信息化集成,从生产环节的全面数据实时监控,到产品的电子化溯源。互联网真正的彻底改变或加持了我们的生产要素,生产方式,甚至是沟通和业务处理方式。

企业是市场主体,许多关系到企业竞争力的问题想要企业自身去做,不过一些涉及到外部制度环境的问题想要政府着力加以解决。从调研中发现,中国要大力承接国际软件外包业务,政府在提供支持、创造环境方面还存在如下一些问题:

政策定位
中国对软件产品研发和CMM认证、软件出口、出国参展、软件人工的税收返还等都有一定优惠,不过在承接软件外包的定位上还不明确,尤其是发展较好的几个核心城市,认为只要是外包就符合城市发展特点,对各种不同类型的外包企业都给予支持,而没有看到不同的承接模式诉求不同,城市间存在比较明显的恶性竞争,不利于在国际市场上树立“中国外包”的良好形象。

在软件企业的认定上只认定软件产品企业,大量符合国际发展潮流的软件服务外包企业难以享受到这些政策。

产权保护

研发型软件企业对知识产权保

护10分重视,尤其是在企业还没有获得知识产权之前的商业机密保护,BPO型的软件企业对商业机密的保护诉求很高。尽管国内有完整的法律制度,不过在商业机密和数据信息等方面的保护上只有当违法造成损失之后才能进行惩罚,并且惩罚力度较小。曾经有一种日本高端研发项目发包到北京,由于接包企业的一种员工对企业管理不满,声言要在网络上公布企业的研发进度和结果,引起日该企业高层的高度关注。事后由于制度上的缺失,认为该员工没有产生实际的损害后果,没有承担任意民事和刑事责任,致使日本发包企业不再将项目发包到中国。是因为他们认为一旦造成泄漏,将会给自己造成巨大损失,这也是许多高质量的外包项目难以发包到中国的关键原因。

人才紧缺
尽管中国的软件人才较多,不过真正符合产业发展需求的高端人才依然缺乏,尤其是既懂行业专业知识、又懂软件知识的高素质人才严重不足。留学归国人工以及在跨国公司工作的高层人工对母国承接国际软件外包具有很大的促进作用,中国尽管在留学生数量、吸引留学生归国创业的吸引力方面有很大优势,但还没有充分发挥出来。
行业协会发展服务能力有待提升

尽管中国软件行业协会已经做了很多工作,但在产业发展趋势考虑、将行业发展困境与政府沟通、规范和引导人工合理流动、推介中国承接软件外包的特点环境方面与印度的NASSCOM相比另外很大不足。

融资环境
软件外包企业融资困难。融资问题对于软件企业是一种比较现实的问题,由于中国传统的银行贷款想要固定资产抵押,而软件企业作为一种服务业企业往往只有比较少的固定资产。

虚拟试衣软件制作,寻找合适的穿搭风格

随着人们生活水平不断提升,很多人开始注重自己的服装穿搭,毕竟每个人的身材各不相同,选用到合适的穿搭才能凸显人们的身材优势,给人们生活带来一定便利。为了迎合社会发展和用户需求,虚拟试衣软件制作出目前人们生活中,方便用户在线寻找到合适的服装穿搭风格。

一.这么虚拟试衣软件制作具备哪些功能特点呢?

1、潮流穿搭资讯:用户在进行虚拟试衣体验之前,能够在线了解各类服装穿搭知识,而为了给用户提供便利,官方会为用户提供一些潮流穿搭资讯,而且还会依据展示服装穿搭技巧,帮忙助力用户获得良好的穿搭体验。而官方的潮流穿搭资讯也会不定时更新内容,以便用户及时浏览相关内容,帮忙助力用户提升服装搭配能力。

二、时尚达人分享:而虚拟试衣软件也会有部分服装穿搭达人入驻,他们会在官方上向用户阐释各类服装穿搭的优弊端以及适用人群,刺激用户浏览相关内容,让用户能从中找到合适自己的穿搭风格。时尚达人分享能为用户提供一定的服装穿搭参考,帮忙助力用户减少试错时间。

三、虚拟试衣功能:而虚拟试衣也是官方的核心功能,用户能够在上传自己的照片至官方上,而且在线输入自己身材指数,之后官方就会为用户生成相关的虚拟人物,这时候用户就能在线进行试衣操作。虚拟试衣方便用户直观的了解到相关服装穿搭是否适合自己,毕竟身材和肤色会在一定程度上影响穿搭效果。

四、在线分享功能:每个人对于服装穿搭的审美能力都各有差异,若是用户不确认相关服装穿搭是否合适自己,也能在线分享自己的虚拟试衣图片给好友,好友接收到相关图片也会及时为用户进行解答。

2.这么制作虚拟试衣软件想要多少钱?

制作一款虚拟试衣软件想要多少钱没有一定确认的答案,而虚拟试衣功能较为复杂,而参考市面上相关移动应用制作报价,软件制作价格也会在10数万上下,用户所需功能越复杂软件制作价格也会越高。

除此之外,UIUX界面设计、制作方案选用和制作区域和公司都会影响软件制作报价,这也说明制作虚拟试衣软件报价不是由单方面因素组成的。

以上就是虚拟试衣软件制作的核心功能和报价分析,依据现在发展趋势来说,移动应用还是具备一定的发展潜力。

开发APP从一门开始www.yimenapp.com

discuz开发APP增加原生QQ分享功能实现唤起QQ分享给好友或QQ空间

1.登录discuz专属站点

可以在您discuz后台一门app插件里面点击进入;【推荐从discuz插件里面点击配置,进入!!】

也可以在https://www.yimenapp.com/使用您绑定手机号登录;

(图:APP唤起QQ实现授权登录)

2.在配置移动版,找到QQ分享功能

(图:APP唤起QQ实现授权登录)

3.在弹出的配置界面输入您的移动应用APPID

(图:APP唤起QQ实现授权登录)

4.输入您在QQ互联申请的移动应用ID
https://connect.qq.com/
务必是移动应用;
务必审核状态为已通过;

APP内添加QQ客服,APP唤起QQ发起咨询,QQ在线客服

QQ客服代码,如果是PC站的,大家都知道怎么添加!
地址:腾讯客服在线代码生成页http://bizapp.qq.com/webpres.htm
电脑端,直接登录这个网址,按照自己的需求在线生成即可!

而在APP内唤起,PC端的代码是不能使用的!
APP内的唤起必须是唤起手机QQ,
那么如何获得手机qq的客服唤起代码呢?

方法有2种,

第一,如果您的客服QQ是企业QQ或者营销QQ,那么登录qidian.qq.com,就可以获得在线链接;
          企业QQ或者营销QQ,付费给腾讯的他们的客服代码链接是兼容PC和手机端的

按照图上的参考,在线一键生成客服代码链接就行了!

第二种,个人手机QQ,大部分其实都是个人QQ作为客服使用,毕竟营销QQ是需要付费的
方法:在手机版QQ上登录,将自己的QQ二维码识别出来的,然后获取QQ二维码的真实链接地址,这个地址就可以在APP内添加使用了
在手机上登录你的QQ号;

登录之后,点击左侧的自己的头像

点击右侧的二维码小图标

这里就可以拿到你自己的QQ的二维码图案了
之后用其他手机,或者识别二维码的工具,扫一扫这个二维码
这里我用微信扫一扫这个二维码

扫码之后,点击取消跳转

按图,点击右侧边上角落

点击复制链接,这个链接就可以唤起手机QQ咯

拿到打包后台,输入即可