<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Objectwitter-CTwitter API 封裝

          聯(lián)合創(chuàng)作 · 2023-09-19 05:58

          什么是 Objectwitter-C

          Objectwitter-C 是一款穩(wěn)定,成熟,全面的 Twitter REST/Streaming API 的 Objective-C 封裝,其封裝了 Twitter 的全部公開 API。由 @開源中國真理部部長 基于 STTwitter 開發(fā),在 STTwitter 對 Twitter REST API 的全面封裝的基礎(chǔ)上,增添了很多工具類使得 API 更加抽象,易用,并且完全重新設(shè)計(jì)了 Twitter Streaming API 的封裝,利用類似于 NSURLSession/NSURLConnection 的委托模式(delegate)使得用戶更容易與 Twitter 流(streaming)API 交互。

          Objectwitter-C 不依賴于 AppKit 和 UIKit 即可工作,你可以將該框架用在命令行應(yīng)用中。你可以把 Objectwitter-C 考慮為 FOSS 版的 Twitter Fabric TwitterKit,但是去掉了 UI 部分并且更加靈活。

          安裝

          將項(xiàng)目目錄拖動(dòng)到你自己的工程中,將你的工程與下列系統(tǒng)框架連接:

          • Accounts.framework

          • Social.framework

          • Twitter.framework (iOS only)

          • Security.framework (OS X only)

          代碼片段

          初始化 Twitter API 對象:

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

          驗(yàn)證憑據(jù):

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

          抓取時(shí)間軸(Timeline)中的推文(tweets):

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

          App Only 驗(yàn)證:

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

          使用游標(biāo)(cursor)枚舉返回結(jié)果:

          [ _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 賬號(hào)

          • 使用你自己指定的 consumer key 和 consumer secret(四種風(fēng)格):

            • 獲取一個(gè) URL,抓取 PIN 碼輸入到你的 app 中從而獲取 OAuth access token

            • 設(shè)置用戶名(username)和密碼(password),然后使用 XAuth 獲取 OAuth access token

            • 直接設(shè)置 OAuth token 和 OAuth token secret

            • 打開 Safari 或者使用 UIWebView 實(shí)例,執(zhí)行 Twitter 驗(yàn)證操作然后通過一個(gè)定制的 UEL scheme 在你的 app 中直接接收 OAuth access token

          • 使用 Application Only 驗(yàn)證,獲取并使用 “bearer token“

          有五個(gè) API 對應(yīng)五種情況:

          + ( 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 中,每個(gè)客戶端應(yīng)用必須使用consumer key和consumer secret驗(yàn)證自身。你可以在這個(gè) Twitter 站點(diǎn)中為你的 app 申請 consumer tokens:https://dev.twitter.com/apps.

          Demo/Test Project

          在 Objectwitter-C 項(xiàng)目中,在 demo_osx 目錄下包含了一個(gè) OS X 上的 demo,這個(gè) demo 演示了一部分 API 的用法,并且還可以允許你選擇如何獲取 OAuth Tokens(如下圖):

          一旦你成功獲取了 OAuth Tokens,你就可以馬上使用這個(gè)簡易的客戶端獲取你的時(shí)間軸并且發(fā)一些推文了。同時(shí),項(xiàng)目中還有一個(gè) iOS 的 demo

          ios_demo1

          更多細(xì)節(jié)

          聯(lián)系作者/Troubleshooting

          如果遇到任何問題,可以以下面的方式聯(lián)系我:

          • Email me: dG9yaW5Aa3dvay5pbQ== (Base64ed)

          瀏覽 20
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青草青青青视频 | 看黄色操逼视频 | 一区无码一区二区三区 | 亚洲天堂AV免费在线观看 | 青草久久茄子视频 |