iOS应用中的Twitter信息流 - 如何获取仅来自我的帐户的信息流列表[无需应用用户登录Twitter]

6
我正在制作一个iOS应用程序,需要在一个列表中显示我设置的推文。问题在于,[我不想使用最终用户的Twitter帐户],我只想通过Twitter API将其数据拉入应用程序中,仅显示该列表。
不幸的是,对于我来说,Twitter API 1.1版本后需要进行身份验证才能执行任何操作。

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

我看到的所有情况都是使用iOS中最终用户的登录来拉取信息流,这很有效,但这里有我的问题:
我能否对列表源进行身份验证,而无需使用iOS上正在使用应用程序的最终用户自己的Twitter帐户进行签名。即,请求使用一个特定的Twitter帐户[我的]进行身份验证?
或者,如果有一种方法可以获取原始的Feed数据而不使用Twitter API [我需要原始数据放入我的应用程序中的UITableView中 - 我不想使用UIWebView]。
这将使得没有Twitter帐户的最终用户可以访问该Feed [列表Feed本来就是公开的,所以我不知道为什么它需要首先进行身份验证]。
非常感谢!

你尝试过使用自己的账户(https://twitter.com/settings/widgets)创建 Web 中的列表小部件,然后深入其 JS 代码以检索该特定列表的公共端点,然后将其用作应用程序的来源吗?我看到“localhost”是被自动支持的,所以从应用程序本地抓取它应该是可能的-但我没有尝试过,这只是我脑海中的一个想法。 - f055
2个回答

14

更新:在这种方法中似乎存在请求限制问题,请使用以下答案:https://dev59.com/mG7Xa4cB1Zd3GeqPrplS#15419005

它使用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


1
使用STTwitter库,您可以在不登录的情况下获取Twitter动态。有方法可以获取所有时间线或特定列表,使用screenName首先设置consumer和secret密钥:
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];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接