IOS新浪微博开发--分享、授权登录

一、准被工作

         1.注册成为开发者,创建应用项目,获取APPkey

        2.添加 SDK 文件到工程
          将从 GitHub 上下载的 libWeiboSDK 文件夹添加至工程,其中包含 WeiboSDK.h libWeiboSDK.a 和 WeiboSDK.bundle 三个文件。
在工程中引入静态库之后,需要在编译时添加 –objC 编译选项,避免静态库 中类加载 不全造成程序崩溃。方法:程序 Target->Buid Settings->Linking 下 Other Linker Flags 项添加-ObjC。

                   

             3.设置工程回调 URL Scheme
              修改 info.plist 文件 URL types 项为自己的 sso 回调地址,”WB[你的应用程序的 Appkey]”,例如:wb204543436852 
              如图所示:

         

到此可进行分享的开发了

一、分享到新浪客户端开发

       1. 在应用启动时注册新浪微博

       代码如下

[objc]  view plain copy
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
  2.       
  3.     [WeiboSDK enableDebugMode: YES];  
  4.     [WeiboSDK registerApp:申请的AppKey];  
  5.       
  6.     return YES;  
  7. }  

处理新浪返回时的回调来启动应用,并设置新浪微博sdk的代理方法

[objc]  view plain copy
  1. - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url  
  2. {  
  3.     return [WeiboSDK handleOpenURL:url delegate:self];  
  4. }  
  5.   
  6. - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation  
  7. {  
  8.     return [WeiboSDK handleOpenURL:url delegate:self];  
  9. }  

发送信息到微博即分享到微博,将如下代码放到你自己的发送信息的方法中

[objc]  view plain copy
  1. WBMessageObject *message = [WBMessageObject message];  
  2.   
  3. if (content != nil){  
  4.     message.text = content;  
  5. }  
  6.   
  7. // 注意:图片和多媒体不能同时分享  
  8. // 图片分享  
  9. WBImageObject *image = [WBImageObject object];  
  10. UIImage *img = [UIImage imageNamed:@"你的图片名称"]  
  11. image.imageData = UIImagePNGRepresentation(img);  
  12. message.imageObject = imageObj;  
  13.   
  14. //分享多媒体,数据对象类为WBBaseMediaObject  
  15.   
  16. WBSendMessageToWeiboRequest *request = [WBSendMessageToWeiboRequest requestWithMessage:message];  
  17. [WeiboSDK sendRequest:request];  

新浪微博的代理方法

[objc]  view plain copy
  1. #pragma ----------------------- WeiboSDKDelegate -------------------  
  2.   
  3. - (void)didReceiveWeiboRequest:(WBBaseRequest *)request  
  4. {  
  5.     if ([request isKindOfClass:WBProvideMessageForWeiboRequest.class]){  
  6.        // 这个代理方法好像是在新浪微博的客户端来启用的应用,然后你的应用在提供分享信息 没有升入研究,有兴趣的可以试试  
  7.     }  
  8. }  
  9.   
  10. - (void)didReceiveWeiboResponse:(WBBaseResponse *)response  
  11. {  
  12.     NSString *message = nil;  
  13.     if ([response isKindOfClass:WBSendMessageToWeiboResponse.class]){  
  14.         if (WeiboSDKResponseStatusCodeSuccess == response.statusCode) {  
  15.             // 执行分享后的回调代理,就是分享后从新浪的客户端回到自己的应用会执行  
  16.         }  
  17.           
  18.     }else if ([response isKindOfClass:WBAuthorizeResponse.class]){  
  19.         WBAuthorizeResponse *authorizeResponse = (WBAuthorizeResponse *)response;  
  20.         if (WeiboSDKResponseStatusCodeSuccess == authorizeResponse.statusCode) {  
  21.             // 使用授权会调用 授权的开发情况下面  
  22.         }  
  23.     }  
  24.     if (message != nil && ![@"" isEqualToString:message]) {  
  25.         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil  
  26.                                                         message:message  
  27.                                                        delegate:nil  
  28.                                               cancelButtonTitle:@"确定"  
  29.                                               otherButtonTitles:nil];  
  30.         [alert show];  
  31.     }  
  32. }  


二、sso授权登录开发  

接下来我们说说授权登录的开发,首先,我们先要对开发进行一些设定。在 新浪的开发平台应用管理中心的设置

1. 设定授权回调页 (对应在客户端使用授权登录时,授权回调页时不需要设置的,默认时http://,它对应WBAuthorizeRequest类中的redirectURI,这个属性的值是不能为空的,如果设置了授权回调页,redirectURI必须也要一致,也就是说:在你的开发者中心设置授权回调页为http://www.xxxx.com,那么redirectURI的值也要是http://www.xxxx.com)
请在“我的应用 - 应用信息 - 高级信息”中填写您的应用回调页,这样才 能使 OAuth2.0 授权正常进行。如果您的 APPSECRET 发生泄露,您也可以通过 该页面中的重置按钮对其重置,

如下图所示:

2. 设定 Apple ID 和 Bundle ID  (这个很重要,如果没有设置进行在授权时就时-100号的错误,Apple ID:就是你的当前的应用在AppStore上面的id号,可以找到
请在“我的应用 - 应用信息 - 基本信息”中填写您的 Apple ID 和 Bundle ID,这样您的应用才能正常使用微博 IOS SDK 授权和回调。(更改设置有延时, 建议退出账号重新登录后再测试)

Apple ID查找 截图如下:


Bundle ID 需要和工程设置保证一致,在 XCODE5 下 Bundle 的截图如下:


转载:http://blog.csdn.net/dlm_211314/article/details/37957903

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值