cocos2d-x之新浪微博平台接入接口

2024-06-02 07:08

本文主要是介绍cocos2d-x之新浪微博平台接入接口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分类: IOS开发 C/C++/汇编 Cocos2d-X 2758人阅读 评论(5) 收藏 举报

目录(?)[+]

简介

本文档主要介绍接入新浪平台的一些内容,便于查阅和使用。

第一步:认证准备

新浪微博的SDK放在github上面,下载地址:https://github.com/mobileresearch/weibo_ios_sdk_sso-oauth,也可直接在控制台中输入gitclonehttps://github.com/mobileresearch/weibo_ios_sdk_sso-oauth.git将代码下载下来。

将sinaweibo_ios_sdk这个目录添加到工程中,这样可以在代码中使用新浪微博API了。

微博SDK不像facebookSDK那样需要在Info.plist里面设置数据,新浪微博的认证都是通过代码完成的。

 认证代码如下:
[cpp] view plain copy
  1. bool SinaProxy::init(const char * appKey_, const char * appSecret_, const char * redirectUri_)  
  2. {  
  3.     NSString * appKey = [NSString stringWithUTF8String:appKey_];  
  4.     NSString * appSecret = [NSString stringWithUTF8String:appSecret_];  
  5.     NSString * redirectUri = [NSString stringWithUTF8String:redirectUri_];  
  6.       
  7.     g_sinaDelegate = [SinaDelegate alloc];  
  8.       
  9.     g_sinaWeibo = [[SinaWeibo alloc] initWithAppKey:appKey appSecret:appSecret appRedirectURI:redirectUri andDelegate:g_sinaDelegate];  
  10.     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];  
  11.     NSDictionary *sinaweiboInfo = [defaults objectForKey:@"SinaWeiboAuthData"];  
  12.       
  13.     if ([sinaweiboInfo objectForKey:@"AccessTokenKey"] && [sinaweiboInfo objectForKey:@"ExpirationDateKey"]  
  14.         && [sinaweiboInfo objectForKey:@"UserIDKey"]){  
  15.         g_sinaWeibo.accessToken = [sinaweiboInfo objectForKey:@"AccessTokenKey"];  
  16.         g_sinaWeibo.expirationDate = [sinaweiboInfo objectForKey:@"ExpirationDateKey"];  
  17.         g_sinaWeibo.userID = [sinaweiboInfo objectForKey:@"UserIDKey"];  
  18.     }  
  19.       
  20.     return true;  
  21. }  
  22.   
  23. void SinaProxy::login()  
  24. {  
  25.     [g_sinaWeibo logIn];  
  26. }  

       函数参数为应用的appkey、appsecret以及同样重要的redirecturi,redirecturi的设置详见微博SDK文档。

在初始化完成之后,调用SDK的logIn函数便会弹出官方登陆页面,注意这里设置了一个回调,以接收平台返回的信息,另外这里面加入了一个保存用户session的功能,便于下次自动登陆。

       如果回调函数sinaweiboDidLogIn被调用,则表面登陆成功,可以调用微博的接口了。

 

第二步:获取用户信息

最重要的是第一步,后面的只是调用平台提供的接口得到结果而已。

获取用户信息的接口如下:

[cpp] view plain copy
  1. void SinaProxy::loadUserInfo(PlatformUserInfo & info)  
  2. {  
  3.     // post status  
  4.     [g_sinaWeibo requestWithURL:@"users/show.json"  
  5.                        params:[NSMutableDictionary dictionaryWithObject:g_sinaWeibo.userID forKey:@"uid"]  
  6.                    httpMethod:@"GET"  
  7.                      delegate:g_sinaDelegate];  
  8. }  

回调部分代码如下:

if ([request.urlhasSuffix:@"users/show.json"]){

        long uid = [result objectForKey:@"id"];

        NSString * sname =[resultobjectForKey:@"screen_name"];

    }

第三步:获取好友信息

接口如下:
[cpp] view plain copy
  1. void SinaProxy::loadFriends(std::vector<PlatformUserInfo*> & friends)  
  2. {  
  3.     [g_sinaWeibo requestWithURL:@"friendships/groups.json"  
  4.                          params:[NSMutableDictionary dictionaryWithObject:g_sinaWeibo.userID forKey:@"uid"]  
  5.                      httpMethod:@"GET"  
  6.                        delegate:g_sinaDelegate];  
  7. }  

注意该接口需要高级权限,需要先申请通过才能获取数据。

 第四步:分享信息

部分代码如下:
[cpp] view plain copy
  1. [sinaweibo requestWithURL:@"statuses/upload.json"  
  2.                        params:[NSMutableDictionary dictionaryWithObjectsAndKeys:  
  3.                                @"要发布的微博文本内容,必须做URLencode,内容不超过140个汉字http://x-work.org", @"status",  
  4.                                //@"hello world", @"status",  
  5.                                [UIImage imageNamed:@"Icon.png"], @"pic", nil]  
  6.                    httpMethod:@"POST"  
  7.                      delegate:self];  

 

分享采用upload这个接口基本够用了,而且不用申请高级权限,适合大部分情况。另外还有一个接口,upload_url_text,该接口主要是图片地址一个网址,抓取该图片然后分享,需要申请高级权限。

这篇关于cocos2d-x之新浪微博平台接入接口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1023280

相关文章

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

Java中的Closeable接口及常见问题

《Java中的Closeable接口及常见问题》Closeable是Java中的一个标记接口,用于表示可以被关闭的对象,它定义了一个标准的方法来释放对象占用的系统资源,下面给大家介绍Java中的Clo... 目录1. Closeable接口概述2. 主要用途3. 实现类4. 使用方法5. 实现自定义Clos

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作

Java 的 Condition 接口与等待通知机制详解

《Java的Condition接口与等待通知机制详解》在Java并发编程里,实现线程间的协作与同步是极为关键的任务,本文将深入探究Condition接口及其背后的等待通知机制,感兴趣的朋友一起看... 目录一、引言二、Condition 接口概述2.1 基本概念2.2 与 Object 类等待通知方法的区别

spring security 超详细使用教程及如何接入springboot、前后端分离

《springsecurity超详细使用教程及如何接入springboot、前后端分离》SpringSecurity是一个强大且可扩展的框架,用于保护Java应用程序,尤其是基于Spring的应用... 目录1、准备工作1.1 引入依赖1.2 用户认证的配置1.3 基本的配置1.4 常用配置2、加密1. 密

SpringBoot实现接口数据加解密的三种实战方案

《SpringBoot实现接口数据加解密的三种实战方案》在金融支付、用户隐私信息传输等场景中,接口数据若以明文传输,极易被中间人攻击窃取,SpringBoot提供了多种优雅的加解密实现方案,本文将从原... 目录一、为什么需要接口数据加解密?二、核心加解密算法选择1. 对称加密(AES)2. 非对称加密(R

Java对接Dify API接口的完整流程

《Java对接DifyAPI接口的完整流程》Dify是一款AI应用开发平台,提供多种自然语言处理能力,通过调用Dify开放API,开发者可以快速集成智能对话、文本生成等功能到自己的Java应用中,本... 目录Java对接Dify API接口完整指南一、Dify API简介二、准备工作三、基础对接实现1.