首页 > Unity3D频道 > 【Unity3D研究院之游戏开发】 > Unity3D研究院之在IOS中调用新浪微博接口(三十六)
2012
09-18

Unity3D研究院之在IOS中调用新浪微博接口(三十六)

最近有朋友问MOMO如何在Unity3D中使用新浪微博接口,刚好最近我们的工程中也需要添加新浪微博接口,那么MOMO就捎带手学习一下。目前我已经成功将新浪微博接口移植在Unity3D中,希望可以帮助到之前问我的那个朋友,哇咔咔。OK!如下图所示,这是我在U3D程序中发出的微薄消息,图片是在U3D中截屏的,效果还是不错的吧,蛤蛤。

 

Unity3D研究院之在IOS中调用新浪微博接口(三十六) - 雨松MOMO程序研究院 - 1

 

在继续学习之前请朋友确认你所需要的微薄密钥是否准备完毕。

1.没有密钥的朋友

请在这里注册一个移动应用,http://open.weibo.com/ 。注册成功后在应用信息-》基本信息中即可获得APP KEY 和 APP SECRET,没有这两个KEY你是无法发送微薄的。 仅仅这些还是不够,因为是刚刚注册的新密钥所以是不能被公众所使用的,你应当继续在 应用信息-> 测试帐号 中添加测试账号,只有添加过的测试帐号才能使用新注册的密钥发送微薄。

2.有密钥的朋友

可以直接使用你的密钥来进行开发。

 

接着开始下载IOS新浪微博的开发包 http://code.google.com/p/sinaweibosdkforoauth2/downloads/list 将下载的SinaWeiBoSDK2 -> src -> SinaWeiBoSDK 开发包添加至Unity3D 生成的工程当中。

如下图所示,SinaWeiBoSDK文件夹就是刚刚下载的开发包,另外,记得将Security.framework加入在工程中。最下面的MyViewController 就是负责在U3D之上发送微薄的。

Unity3D研究院之在IOS中调用新浪微博接口(三十六) - 雨松MOMO程序研究院 - 2

 

接着大家参照上一篇文章将 MyViewController 加入在U3D之上,请大家看一下我的U3D的工程。

http://www.xuanyusong.com/archives/517

 

在 OpenEAGL_UnityCallback方法中,在此方法的末尾添加代码:

MyViewController * myView =  [[MyViewController alloc] init];

[sGLViewController.view addSubview:myView.view];

 

Test.cs 挂在摄像机上 首先截屏一张图存在IOS的沙盒中,当用户点击发送消息时开始调用MyViewConroller中的_AuthoLogin方法进行微薄登录。

 

UIAndDateBinding.cs 这个类负责进行调用IOS前端方法

 

 

因为代码比较简单,我就不做过多的说明。然后我们主要来看MyViewController,登录微薄 发送微薄 注销微薄的方式都在这里。

MyViewController.h 没啥东西

 

主要的代码都在这里,请大家仔细看喔。

 

发送成功的完整图片。代码我就不上传了,这篇博客也不是很难,仔细看看大家都可以把文字和图片发送在新浪微博中的噢。看了一下表已经不完了,MOMO也得去睡觉了 不然有人会很 很生气 很生气 很生气的,蛤蛤。。

Unity3D研究院之在IOS中调用新浪微博接口(三十六) - 雨松MOMO程序研究院 - 3

 

由于我这里的unity版本是3.5 听说在unity4下面会出现无法分享图片的情况, 后来有一个朋友在留言中它解决了这个问题, 我发现还是有朋友会问我这个,所以我还是把他写的文章粘贴过来

 

单机游戏如果没有服务端,那微博就是一个推广和讨论的好地方。

 

首先,可以看一下雨松的教程:

http://www.xuanyusong.com/archives/1794

 

我用的Unity4.0的beta版,发现了不少问题:

一、ViewControl的获得改变了:

sGLViewController 变化为–》UnityGetGLViewController()

二、游戏内截图所放的位置有变化:

Application.persistentDataPath打印出来的是:
/var/mobile/Applications/27F8B3B1-8E33-4196-8610-40D87D6E7F1A/Documents

从IOS中读取的图片路径是:
/var/mobile/Applications/27F8B3B1-8E33-4196-8610-40D87D6E7F1A/Library/Documentation/XX.png

所以我一直无法发出图片。

解决方式是:把路径从Unity3D中传出来。

为了测试,我找了个把截屏的图放到手机相册里的代码。

Unity3D研究院之在IOS中调用新浪微博接口(三十六) - 雨松MOMO程序研究院 - 4

Unity3D研究院之在IOS中调用新浪微博接口(三十六) - 雨松MOMO程序研究院 - 5

 

 

Unity3D研究院之在IOS中调用新浪微博接口(三十六) - 雨松MOMO程序研究院 - 6

Unity3D研究院之在IOS中调用新浪微博接口(三十六) - 雨松MOMO程序研究院 - 7

 

Unity3D研究院之在IOS中调用新浪微博接口(三十六) - 雨松MOMO程序研究院 - 8

 这个是它后面修改的原文地址!!

雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!

--

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。

  1. MOMO,unity4的那个路径没问题的,iPhone存放持久性数据一直都是存放在Documents,我测试过了,你的代码依旧能运行,图片也能读到。现在有C#接口了,如果能直接在unity里面调用新浪接口会方便很多

  2. Pingback: 郑勾栅七

  3. 加入测试了可以用了,但是必须用weiboEngine.login(),这样只能用默认的新浪弹窗,我想用自己的弹窗,接受用户名,密码,用weiboEngine.login(username,pwd)这个函数没效果,官方文档说貌似要满足一定的条件,没说什么条件。。怎么办啊。

  4. Undefined symbols for architecture armv7: “__sinaWeiboIsLoggedIn”, referenced from: RegisterMonoModules() in RegisterMonoModules.o “__sinaWeiBoPsotWithLocalImage”, referenced from: RegisterMonoModules() in RegisterMonoModules.o “__sinaWeiBoAccessToken”, referenced from: RegisterMonoModules() in RegisterMonoModules.o “__sinaWeiboInit”, referenced from: RegisterMonoModules() in RegisterMonoModules.o “__sinaWeiBoPsot”, referenced from: RegisterMonoModules() in RegisterMonoModules.o “__sinaWeiboLogin”, referenced from: RegisterMonoModules() in RegisterMonoModules.o “__sinaWeiboLogout”, referenced from: RegisterMonoModules() in RegisterMonoModules.o “__sinaWeiBoUserID”, referenced from: RegisterMonoModules() in RegisterMonoModules.o报错 呀 大神

  5. momo,用你的例子写了,问题是点击按钮之后,程学就死掉了。打印之后发现程序转入ios前台后_AuthLogin函数并没有执行。不知道具体的原因。。求解答

  6. 你好,今天用了您的例子调用微博,但是显示不出登陆界面。并且确定已经进入void _AuthLogin()这个函数,做了测试可以在这个函数里面弹出UIAlertView,但是没有登录界面显示。希望能解答一下

  7. “接着大家参照上一篇文章将 MyViewController 加入在U3D之上,请大家看一下我的U3D的工程。” 这个是在哪里?上一篇文章在哪?