1

I want to display the feeds of one specific twitter page. Regardless of who the user is, I want to be able to specify the number of tweets to get and the twitter user to retrieve for (this will be hardcoded)

I have used the following code to start the authentication

self.accountStore = store; ACAccountType *twitterAccountType = [self.accountStore accountTypeWithAccountTypeIdentifier: ACAccountTypeIdentifierTwitter];

There is a lot of code below this, which I follow from the twitter documentation, so basically, this will throw a UIAlertView if no accounts are set up.

I want to take into account the fact that, the users of this app: 1 - might not have a twitter account 2 - they do not use twitter on their phone and so its not set up in settings

The twitter feed serves as a news feed in this application, so my question is,

Is there anyway, I can provide the twitter api a default user, hardcoded, without having to go through the accounts ?

I want to know what sort of info the accountStore is pulling, so perhaps I could replicate it and send it to the twitter api after building a similar structure.

I am a bit new to iPhone programming so forgive me if some of this is very obvious.

Thank You for your time.

4

2 回答 2

2

我找到了对我的要求有帮助的答案,

我的要求是我正在开发一个 iPhone 应用程序,并且需要来自 twitter 上一位特定用户的特定推文。虽然这很容易使用旧的 twitter api,但使用 v1.1,需要用户身份验证。

虽然 iOS 提供了他们自己的社交 sdk,但我想考虑这样一个事实,即用户可能没有 twitter 或没有在他们的手机上登录并且仍然接收提要。根据我的研究,我没有发现任何东西,因为几乎所有解决方案都会检查用户的 iPhone 设置,以确保他们已经设置了 Twitter 帐户。

因此,由于这些是我的限制条件,我决定使用 PHP 创建一个 Web 服务,通过 twitter 进行身份验证并提取我需要的推文。将它们编码为 JSON 并回显。

然后从 IOS 应用程序中,我调用了这个 Web 服务并将其反序列化并按照我的需要使用它。

现在一些代码。

关于如何将 PHP 与新的 twitter API 一起使用的大部分答案可以在这里找到: https ://github.com/J7mbo/twitter-api-php 。从这里获取文件,您可以看到他给出的示例。我在下面给出了一个小的。

这是我需要使用的一些步骤

  • 在 Twitter 上创建一个应用程序。转到此处https://dev.twitter.com/,使用您的 Twitter 帐户登录。到达那里后,您需要创建一个应用程序。
  • 从上面抓取文件并将 TwitterAPIExchange.php 放在您的服务器上
  • 创建您的 php 文件并放入require_once('TwitterAPIExchange.php');在顶部
  • 创建应用程序后,从仪表板中,您将获得一些信息,您需要使用 twitter api 进行身份验证。像这样在你的php中使用它

    $settings = array( 'oauth_access_token' => "YOUR_OAUTH_ACCESS_TOKEN", 'oauth_access_token_secret' => "YOUR_OAUTH_ACCESS_TOKEN_SECRET", 'consumer_key' => "YOUR_CONSUMER_KEY", 'consumer_secret' => "YOUR_CONSUMER_SECRET" );

一旦你设置了这个数组,你可以继续指定你需要什么来设置你需要的东西

$url = 'https://api.twitter.com/1.1/statuses/user_timeline.json';
$getfields = '?screen_name=screen_name_you_want&count=number_of_tweets_you_want';
$requestMethod = 'GET';

url 说明了我的脚本通过身份验证后想要获取的资源。下面是参数。您要检索的屏幕名称和推文数量。请求方法协议将是 GET。如果您想将某些内容发布到时间线,您将需要使用 POST 但还需要从您的开发帐户修改您的应用程序访问权限。目前,我的应用程序只有读取权限,因为我只需要它。

然后是执行的时间

$twitter = new TwitterAPIExchange($settings); 
$tweets = $twitter->setGetfield($getfield)
             ->buildOauth($url, $requestMethod)
             ->performRequest();

如果您在 github 上看到 J7mbo 的示例,他会重复整个时间线,您可以这样做以查看它的外观,因此我想更深入地了解并获取推文。

$tweet_array = array();
$index = 1;
foreach($tweets as $feed=>$item)
{
   $arr_index = 'tweet'.$index;
   $tweet_array[$arr_index] => $item['text'];
   $index++;
}

echo json_encode($arr_index);

这将回显 json 像 "tweet1"=>"Latest Tweet","tweet2"=>"Second Latest Tweet"

然后,您可以从 Xcode 调用此 url 并获取 json 提要并按照您的意愿使用它。

附带说明:无论何时运行脚本,都需要一段时间来进行身份验证和检索提要,并且由于这是针对 IOS 应用程序,因此最好应用缓存。根据相关用户更新其 Twitter 的频率,您可以设置 time_limit。每当您检索推文时,将其存储在数据库中。如果下一个用户请求推文,请检查时间限制,如果小于,则从您的数据库中检索它,如果已超过时间限制,则更新您的数据库并向用户发送新结果。

我要感谢 J7mbo 的 GitHub 库,还要感谢 MZimmerman,因为他指出了使用 tumblr 更容易解决此问题的方法。

谢谢。

于 2013-07-14T08:48:48.950 回答
0

我相信 Twitter 现在实际上会让这件事变得更难,因为他们需要授权才能获取推文等信息。但是,Tumblr 不需要授权。因此,您可以做的是在 Tumblr 上发布您通过 Twitter 发布的任何更新。

然后,您可以通过简单的 URL 使用 Tumblr Web API 访问此信息,如下所示

http://username.tumblr.com/api/read/json?num=25

这将返回一个长度为 25 的提要,然后您可以使用它进行解析NSJSONSerialization以将其转换为 NSDictionary 格式,这将很容易处理您想要的任何内容。

于 2013-07-11T15:18:44.967 回答