美文网首页iOS开发技巧iOS开发iOS Developer
手把手的教你使用友盟实现新浪微博第三方登陆

手把手的教你使用友盟实现新浪微博第三方登陆

作者: BeyondiOS | 来源:发表于2016-06-29 22:56 被阅读3193次

1、打开友盟官网

http://www.umeng.com/

注册开发者账号

2、添加新应用

打开

http://mobile.umeng.com/apps/new

这里很简单的,你按照要求设置然后点击“提交并获取AppKey”

3、我这里是通过CocoaPods来安装友盟第三方库的

还没安装的建议你安装,github上面的很多开源库都是基于CocoaPods的,掌握这个事半功倍。

在Pods项目下面找到Prodfile文件,打开并输入:pod 'UMengSocial'

然后点击Install

弹出如下提示,请点击Yes

打开后再在AppDelegate中导入

#import"UMSocialSinaSSOHandler.h"

输入UM可能没有提示

在Build Settings 下面找到User Header Search Paths 输入红框中的内容

并且选择recursive,这样就能模糊查找该目录下面的所有.h文件了

4、登陆新浪微博开发者中心

创建移动应用

注意下图的Apple ID 可以随便填写,因为你的app还没有上线是没有Apple ID的

因为你暂时这是用来测试可以不用提交审核。

然后点击我的应用,点击进入你刚才添加的应用对其进行管理

授权回调页、取消授权回调页都输入

http://sns.whalecloud.com/sina2/callback 

添加测试账号

5、配置相关信息

a、大部分社交平台SDK不支持bitcode,请将bitcode修改为NO

不修改就会报这个错误:

clang: error: linker command failed with exit code 1 (use -v to see invocation)

b、添加Scheme白名单。

问题描述:在iOS 9下涉及到平台客户端跳转,系统会自动到项目info.plist下检测是否设置平台Scheme。对于需要配置的平台,如果没有配置,就无法正常跳转平台客户端。因此要支持客户端的分享和授权等,需要配置Scheme名单。

下面的配置信息是给微信、微博、qq、支付宝添加白名单,请将其加入到info.plist

不知道为什么这个粘贴后格式就不对了,所以就放张图片了,或者你们百度搜索下

c、Other Linker Flags 请添加-all_load

不然就会报着错误:

[NSConcreteMutableData wbsdk_base64EncodedString]: unrecognized selector sent to instance 0x12f6f4f80

d、info.plist文件需加入如下代码

NSAppTransportSecurity

NSAllowsArbitraryLoads

e、配置URL Schemes为:wb+AppKey

6、代码实现新浪微博登陆

打开APPDelegate导入如下:

#import"UMSocialSinaSSOHandler.h"

#import"UMSocial.h"

在- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions 中写入如下代码:

```

[UMSocialDatasetAppKey:@"友盟创建应用的AppKey"];

//设置新浪微博AppId、appSecret,分享url

[UMSocialSinaSSOHandler

openNewSinaSSOWithAppKey:@"微博创建应用的AppKey"// sina ID

secret:@"微博创建应用的secret"// sina

// secret

RedirectURL:@"http://sns.whalecloud.com/sina2/callback"];

```

�APPDelegate中重写如下方法

/**

这里处理新浪微博SSO授权之后跳转回来,和微信分享完成之后跳转回来

*/

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

return[UMSocialSnsServicehandleOpenURL:url];

}

/**

这里处理新浪微博SSO授权进入新浪微博客户端后进入后台,再返回原来应用

*/

- (void)applicationDidBecomeActive:(UIApplication*)application

{

[UMSocialSnsServiceapplicationDidBecomeActive];

}


在按钮事件写入如下代码

UMSocialSnsPlatform*snsPlatform =

[UMSocialSnsPlatformManagergetSocialPlatformWithName:UMShareToSina]; snsPlatform.loginClickHandler(self,[UMSocialControllerService

defaultControllerService],YES,^(UMSocialResponseEntity*response){

//获取微博用户名、uid、token等

if(response.responseCode==UMSResponseCodeSuccess) {

NSDictionary*dict = [UMSocialAccountManagersocialAccountDictionary];

UMSocialAccountEntity*snsAccount =[[UMSocialAccountManagersocialAccountDictionary]valueForKey:snsPlatform.platformName];

NSLog(@"\nusername = %@,\n usid =%@,\n token = %@ iconUrl = %@,\n unionId = %@, message =%@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL,snsAccount.unionId, response.message);

}});

ok完成了,运行起来,不能再模拟器中测试,只能真机调试

发了点时间整理的,如果对你有帮助,就点击下面的红色心吧,给我赞哦,多谢支持!!!!

最后祝大家成功实现!!!!!!!!



相关文章

网友评论

  • CodingEleven:新浪微博开放平台那边申请的应用是不是要提交审核并通过之后才能使用授权回调,为什么我的登录会错误,弹出sso package or sign error?
  • 往事不许提:博主有没有发现这个问题:当没有安装新浪微博的时候,使用无线网就打不开新浪的授权页面 如果使用4G网就可以打开。
  • 伦敦乡下的小作家:未安装情况下,会弹出网页登录微博,但是弹出来之后又自动弹回去了,是为什么?
  • lowry_: ( ^_^ )不错嘛
    BeyondiOS:点个赞关注下我呗:blush:
  • Joe_lisa:到最后按钮那边一直报错哦,是一步步来的,从pod 到申请友盟和新浪APPkey 和secrect
    BeyondiOS:那你新建一个项目从新来一次试试看
  • BeyondiOS:请问简书编写文章,如何插入代码,我这篇文章的插入代码方式好像不对
    BeyondiOS:@甚么都不想说了 嗯嗯,我试试
    愿得_qiu_人心:@BeyondIOS 你这个是引用的语法,弄得代码,试试这个
    ```objc
    // code
    ```
    愿得_qiu_人心:@BeyondIOS 学习下markdown语法

本文标题:手把手的教你使用友盟实现新浪微博第三方登陆

本文链接:https://www.haomeiwen.com/subject/zfuxjttx.html