转载

Objectwitter-C dev-0.9.3 释出,增添上传原生视频功能

6月14日上海 OSC 源创会开始报名,送机械键盘和开源无码内裤

今年一月,Twitter 启动了 在官方移动客户端上的原生视频上传功能 ,两周前,该公司又 宣布向第三方开发者开放 Twitter 原生视频上传功能的 API :

Objectwitter-C dev-0.9.3 释出,增添上传原生视频功能

本次 Objectwitter-C 更新,就是从上游合并了视频上传 API 的实现,可以在 这里 获取最新的代码。

什么是 Objectwitter-C

Objectwitter-C 是一款稳定,成熟,全面的 Twitter REST/Streaming API 的 Objective-C 封装,其封装了 Twitter 的全部公开 API。由@开源中国真理部部长基于  STTwitter 开发,在 STTwitter 对  Twitter REST API 的全面封装的基础上,增添了很多工具类使得 API 更加抽象,易用,并且完全重新设计了  Twitter Streaming API 的封装,利用类似于  NSURLSession / NSURLConnection 的委托模式(delegate)使得用户更容易与 Twitter 流(streaming)API 交互。

Objectwitter-C 不依赖于 AppKit 和 UIKit 即可工作,你可以将该框架用在命令行应用中。你可以把 Objectwitter-C 考虑为 FOSS 版的 Twitter Fabric TwitterKit,但是去掉了 UI 部分并且更加灵活。

安装

将项目目录拖动到你自己的工程中,将你的工程与下列系统框架连接:

  • Accounts.framework

  • Social.framework

  • Twitter.framework (iOS only)

  • Security.framework (OS X only)

代码片段

初始化 Twitter API 对象:

STTwitterAPI* twitter = [ STTwitterAPI twitterAPIWithOAuthConsumerKey: @""                                                        consumerSecret: @""                                                              username: @""                                                              password: @"" ];

验证凭据:

[ twitter verifyCredentialsWithUserSuccessBlock: ^( NSString* username, NSString* userID )   {  // ...  } errorBlock:   ^( NSError* error )     {    // ...    } ]; 

抓取时间轴(Timeline)中的推文(tweets):

[ twitter getHomeTimelineSinceID: nil         count: 100     successBlock: ^( NSArray* statuses )   {  // ...  } errorBlock:   ^( NSError* error )     {    // ...    } ]; 

App Only 验证:

STTwitterAPI* twitter = [ STTwitterAPI twitterAPIAppOnlyWithConsumerKey: @""                consumerSecret: @"" ]; [ twitter verifyCredentialsWithUserSuccessBlock:  ^( NSString* username, NSString* userID )    {   [ twitter getUserTimelineWithScreenName: @"barackobama"            successBlock:     ^( NSArray* statuses )      {     // ...     } errorBlock:      ^( NSError* error )        {       // ...       } ];   } errorBlock:     ^( NSError* error )      {     // ...     } ]; 

使用游标(cursor)枚举返回结果:

[ _twitter fetchAndFollowCursorsForResource: @"followers/ids.json"         HTTPMethod: @"GET"         baseURLString: @"https://api.twitter.com/1.1"         parameters: @{@"screen_name":@"0xcharlie"}      uploadProgressBlock: nil       downloadProgressBlock: nil          successBlock: ^( id request, NSDictionary* requestHeaders, NSDictionary* responseHeaders, id response, BOOL morePagesToCome, BOOL* stop )   {  NSLog( @"-- success, more to come: %d, %@", morePagesToCome, response );  }      pauseBlock: ^( NSDate* nextRequestDate )   {  NSLog( @"-- rate limit exhausted, nextRequestDate: %@", nextRequestDate );  }      errorBlock:  ^( id request, NSDictionary* requestHeaders, NSDictionary* responseHeaders, NSError* error )   {  NSLog( @"-- %@", error );  } ]; 

不同类型的 OAuth 连接:你可以以三种方法初始化 STTwitterAPI 对象:

  • 使用 OS X Preferences 或者 iOS Settings 中的 Twitter 账号

  • 使用你自己指定的 consumer key 和 consumer secret(四种风格):

    • 获取一个 URL,抓取 PIN 码输入到你的 app 中从而获取 OAuth access token

    • 设置用户名(username)和密码(password),然后使用 XAuth 获取 OAuth access token

    • 直接设置 OAuth token 和 OAuth token secret

    • 打开 Safari 或者使用 UIWebView 实例,执行 Twitter 验证操作然后通过一个定制的 UEL scheme 在你的 app 中直接接收 OAuth access token

  • 使用 Application Only 验证,获取并使用 “bearer token“

有五个 API 对应五种情况:

+ ( STTwitterAPI* ) twitterAPIOSWithFirstAccount; + ( STTwitterAPI* ) twitterAPIWithOAuthConsumerKey: ( NSString* )consumerKey  consumerSecret: ( NSString* )consumerSecret; + ( STTwitterAPI* ) twitterAPIWithOAuthConsumerKey: ( NSString* )consumerKey  consumerSecret: ( NSString* )consumerSecret        username: ( NSString* )username        password: ( NSString* )password; + ( STTwitterAPI* ) twitterAPIWithOAuthConsumerKey: ( NSString* )consumerKey  consumerSecret: ( NSString* )consumerSecret      oauthToken: ( NSString* )oauthToken                                   oauthTokenSecret: ( NSString* )oauthTokenSecret; + ( STTwitterAPI* ) twitterAPIAppOnlyWithConsumerKey: ( NSString* )consumerKey    consumerSecret: ( NSString* )consumerSecret; 

上面的代码片段只是用于演示,Objectwitter-C API 是对 Twitter API 的全面封装,所以你可以查阅头文件和 Twitter API 文档 来了解任何你想要的东西。

OAuth Consumer Tokens

在 Twitter API 1.1 中,每个客户端应用必须使用consumer key和consumer secret验证自身。你可以在这个 Twitter 站点中为你的 app 申请 consumer tokens: https://dev.twitter.com/apps .

Demo/Test Project

在 Objectwitter-C 项目中,在 demo_osx 目录下包含了一个 OS X 上的 demo,这个 demo 演示了一部分 API 的用法,并且还可以允许你选择如何获取 OAuth Tokens(如下图):

Objectwitter-C dev-0.9.3 释出,增添上传原生视频功能

一旦你成功获取了 OAuth Tokens,你就可以马上使用这个简易的客户端获取你的时间轴并且发一些推文了。同时,项目中还有一个  iOS 的 demo :

Objectwitter-C dev-0.9.3 释出,增添上传原生视频功能

更多细节

  • 浏览头文件和 Twitter API 文档

  • 浏览 Objectwitter-C 源码 或 项目的 README.md

联系作者/Troubleshooting

如果遇到任何问题,可以以下面的方式联系我:

  • Find me on Twitter: @NSTongG

  • Email me: VG9uZy1HQG91dGxvb2suY29t (Base64ed)

正文到此结束
Loading...