6

我正在制作一个需要在我设置的列表提要中显示推文的 iOS 应用程序。问题是[我根本不想使用最终用户的 Twitter 帐户],我只想通过 Twitter API 拉取数据来在应用程序中显示一个列表提要。

对我来说不幸的是,1.1 版之后的 Twitter API 需要身份验证才能对其进行任何操作。

https://dev.twitter.com/docs/api/1.1/get/lists/statuses#example-request

我见过的所有案例都是在 iOS 中使用最终用户的登录名来提取提要,这很有效,但这是我的问题:

我是否可以验证列表提要的这些请求,而使用该应用程序的最终用户无需在 iOS 上登录到他们自己的 Twitter 帐户。即请求通过一个特定的 Twitter 帐户 [我的] 进行身份验证?

或者如果有一种方法可以在不使用 twitter API 的情况下获取原始提要数据 [我需要将原始数据放入我的应用程序中的 UITableView - 我不想使用 UIWebView]。

这将使没有 twitter 帐户的最终用户可以访问提要[列表提要无论如何都是公开的,所以我不知道为什么它首先需要身份验证]。

非常感谢!

4

2 回答 2

14

更新:他们似乎是这种方法中的请求限制问题,请使用以下答案https://stackoverflow.com/a/15419005/1228669

它使用STTwitter

它包含一个检查请求限制的方法

- (void)getRateLimitsForResources:(NSArray *)resources // eg. statuses,friends,trends,help
                 successBlock:(void(^)(NSDictionary *rateLimits))successBlock
                   errorBlock:(void(^)(NSError *error))errorBlock {

使用此方法检查当前 api 限制,因为现在 api 限制为 15 分钟间隔,更多详细信息请访问Twitter 1.1 API 限制

==================================

如果您还没有找到解决方案,您可以尝试这种方法

  1. 在 Twitter 上注册您的应用程序https://dev.twitter.com/apps

  2. 在应用信息页面底部“单击创建我的访问令牌”按钮,它将创建访问令牌和秘密

  3. 下载 FHSTwitterEngine https://github.com/fhsjaagshs/FHSTwitterEngine

使用以下代码将访问令牌设置为 twitter 引擎:

self.engine = [[FHSTwitterEngine alloc]initWithConsumerKey:@"yourAppConsKey" andSecret:@"yourAppsecret"];
OAToken *token = [[OAToken alloc] init];

token.key = @"setaccessToken";
token.secret = @"setAccessTokenSecret";
[self.engine setAccessToken:token];

你可以试试这个方法来获取推文

[self.engine getTimelineForUser:username isID:NO count:1];

还要确保在您的项目中添加 SystemConfiguration.framework

于 2013-04-25T15:47:12.190 回答
1

使用 STTwitter 库,您无需登录即可获取 twitter 提要,有一些方法可以使用 screenName 获取所有时间线或特定列表,首先您设置密钥使用者和秘密:

self.twitter = [STTwitterAPI twitterAPIAppOnlyWithConsumerKey:kTwitterConsumerKey
                                               consumerSecret:kTwitterSecretKey];

然后使用屏幕名称从列表中获取时间线:

[_twitter verifyCredentialsWithSuccessBlock:^(NSString *bearerToken) {
    // NSLog(@"Access granted with %@", bearerToken);

    // load user tweets according to list
    [_twitter getListsStatusesForSlug:kSlug screenName:kScreenName ownerID:nil sinceID:nil maxID:nil count:nil includeEntities:0 includeRetweets:0 successBlock:^(NSArray *statuses) {
        //your code for getting feeds from array statuses
    } errorBlock:^(NSError *error) {
        NSLog(@"-- error: %@", error);
    }];

} errorBlock:^(NSError *error) {
    NSLog(@"-- error %@", error);
}];

这对我有用,如果您想获取关注者列表,请使用 FHSTwitter 引擎和检查状态的方法是:

[[FHSTwitterEngine sharedEngine] lookupFriendshipStatusForUsers:users areIDs:NO];
于 2015-02-10T07:33:39.700 回答