MGTwitterEngine中Twitter API 1.1的使用

在iOS5中使用Twitter framework或者在iOS6中使用Social framework来完成Twitter的集成是非常简单和轻松的,但是如果应用要针对iOS5之前的系统版本,那么就不能使用iOS提供的框架了。一个比较常见也是使用最广泛的选择是MGTwitterEngine,比如PomodoroDo选择使用的就是该框架。

但是今天在对PomodoroDo作更新的时候,发现Twitter的分享无法使用了,在查阅Twitter文档说明之后,发现这是Twitter采用了新版API的原因。默认状况下MGTwitterEngine采用的是v1版的API,并且使用XML的版本进行请求,而在1.1中,将只有JSON方式的API可以使用。v1.0版本的API已经于2013年3月5日被完全废弃,因此想要继续使用MGTwitterEngine来适配iOS5之前的Twitter集成需求,就需要将MGTwitterEngine的请求改为JSON方式。MGTwitterEngine也考虑到了这一点,但是因为时间比较古老了,MGTwitterEngine使用了YAJL来作为JSON的Wrapper,因此还需要将YAJL集成进来。下午的时候尝试了一会儿,成功地让MGTwitterEngine用上了1.1的Twitter API,为了以防之后别人或是自己可能遇到同样的问题,将更新的方法在此留底备忘。

  1. 导入YAJL Framework

    • YAJL的OC实现,从该地址下载该框架。(2013年3月24日的最新版本为YAJL 0.3.1 for iOS)
    • 解压下载得到的zip,将解压后的YAJLiOS.framework加入项目工程
    • 在Xcode的Build Setting里在Other Linker Flags中添加-ObjC和-all_load标记
  2. 加入MGTwitterEngine的JSON相关代码
    • MGTwitterEngine的页面down下该项目。当然如果有新版或者有别的branch可以用的话更省事儿,但是鉴于MGTwitterEngine现在的活跃度来说估计可能性不大,所以还是乖乖自己更新吧。
    • 解开下载的zip,用Xcode打开MGTwitterEngine.xcodeproj工程文件,将其中Twitter YAJL Parsers组下的所有文件copy到自己的项目中。
  3. YAJL头文件集成
    • 接下来是C和OC接口头文件的导入,从下面下载YAJL库:https://github.com/thinglabs/yajl-objc
    • 在下载得到的文件夹中,寻找并将以下h文件拷贝到自己的工程中:
      • yajl_common.h
      • yajl_gen.h
      • yajl_parse.h
      • NSObject+YAJL.h
      • YAJL.h
      • YAJLDocument.h
      • YAJLGen.h
      • YAJLParser.h
  4. 最后是在MGTwitterEngine设定为使用v1.1 API以及JSON方式请求

在MGTwitterEngine.m中,将对应代码修改为以下:

#define USE_LIBXML 0
#define TWITTER_DOMAIN @"api.twitter.com/1.1"

在MGbTwitader.h,启用YAJL

#define define YAJL_AVAILABLE 1

本文参考:

MGTwitterEngine issues 107

http://damienh.org/2009/06/20/setting-up-mgtwitterengine-with-yajl-106-for-iphone-development/

转载自:https://onevcat.com/

时间: 2025-01-04 04:58:40

MGTwitterEngine中Twitter API 1.1的使用的相关文章

在.NET中使用API的方法

在.NET中使用API的方法www.yescnet.com CNET中文网 可能说VB.NET是一个令人恨又令爱的编程软件,新版的.NET不像VB6那样多的支持API调用,好不容易在MSDN中找到的使用API的方法,代码如下:[Visual Basic] SetLastError := True, CharSet := CharSet.Unicode, _ExactSpelling := True, _CallingConvention := CallingConvention.StdCall)

在Visual C#中运用API函数获取系统信息

visual|函数 API函数是构筑Windows应用程序的基石,是Windows编程的必备利器.每一种Windows应用程序开发工具都提供了间接或直接调用了Windows API函数的方法,或者是调用Windows API函数的接口,也就是说具备调用动态连接库的能力.Visual C#和其它开发工具一样也能够调用动态链接库的API函数.本文中笔者就结合实例向大家介绍在Visual C#中如何调用各种返回值的API,该实例就是一个通过API函数调用获取系统信息的程序. 在Visual C#中调用

C# 中操作API

作为初学者来说,在C#中使用API确是一件令人头疼的问题.在使用API之间你必须知道如何在C#中使用结构.类型转换.安全/不安全代码,可控/不可控代码等许多知识. 一切从简单开始,复杂的大家一时不能接受.我们就从实现一个简单的MessageBox开始.首先打开VS.Net ,创建一个新的C#工程,并添加一个Button按钮.当这个按钮被点击,则显示一个MessageBox对话框. 即然我们需要引用外来库,所以必须导入一个Namespace: using System.Runtime.Intero

Eclipse中的API Tools:简介

了解如何使用 Eclipse 管理应用程序的 API 创建 Application Public Interface(API),尤其是管理各个版本的 API 十分困难.了解如何利用 Eclipse 的 PDE API Tools 来简化此过程,并且无缝地将其集成到日常开发中.注意,本文专门针对 Eclipse V3.4:Ganymede. 在详细介绍 Eclipse Plug-in Development Environment(PDE)内的 Application Public Interfa

如何在VC++中使用API直接打印

(说明:)这一段代码,用以演示<如何在VC++中使用API直接打印>.并且该段代码可以直接嵌入各种工程中,有实际使用的价值. (用途:)在Visual C++中,应用程序通常是使用CView中提供的打印功能,在OnPrint()或OnDraw()中向打印机输出.但是对于对话框中的数据,或基于对话框的程序,打印成了一件繁琐的工作. 该段代码向用户提供了PrintListCtrl()函数,用于打印用户在对话框或FormView中的CListCtrl(控件必须是Report View 形式的)控件中

c# adbwinapi.dll-c# 如何调用AdbWinApi.dll 中的API

问题描述 c# 如何调用AdbWinApi.dll 中的API 在google中搜索AdbWinApi.dll api 也找不到.希望高手帮忙 解决方案 http://blog.csdn.net/itjobtxq/article/details/17335851 既然有.h文件函数原型,就可以用dllimport申明函数,并且在C#中使用. 解决方案二: 调用dll的APIyesry 通过桥接器,Java调用任何API或DLL 解决方案三: 先下载AdbWinapi.dll,然后将其添加到项目的

google maps-如何在 google map 中找 API key ?

问题描述 如何在 google map 中找 API key ? <?xml version=""1.0"" encoding=""utf-8""?><com.google.android.maps.MapView xmlns:android=""http://schemas.android.com/apk/res/android"" android:id="

如何理解android中的api level

问题描述 如何理解android中的api level 刚开始是api level 1 现在api level 多少了 是不是随着android版本的更新而不断的更新 解决方案 可以查看android api的官网,http://source.android.com/source/build-numbers.html level是会随版本更新的,现在都二十几了,应该是23了吧 解决方案二: http://blog.csdn.net/nihaoqiulinhe/article/details/50

利用twitter api爬取twitter数据有哪些限制?

问题描述 利用twitter api爬取twitter数据有哪些限制? 利用twitter提供的API来爬取twitter数据都有那些限制啊?例如之前每个用户限制一个小时150次可是现在貌似没有这个限制了,不过限速,小弟初学,想请教下,这样爬取twitter数据的官方限制都具体有哪些? 解决方案 http://www.zhihu.com/question/35497572 解决方案二: 从Twitter API采集twitter数据twitter apitwitter api的使用