iOS 应用程序中的 Twitter 提要 - 我如何仅从我自己的帐户获取列表提要 [无需应用用户登录 Twitter]
Posted
技术标签:
【中文标题】iOS 应用程序中的 Twitter 提要 - 我如何仅从我自己的帐户获取列表提要 [无需应用用户登录 Twitter]【英文标题】:Twitter feed in an iOS app - how can i get a list feed just from my own account [without needing the app user to be signed into twitter] 【发布时间】:2013-02-03 14:54:02 【问题描述】:我正在制作一个需要在我设置的列表提要中显示推文的 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 帐户的最终用户可以访问提要 [列表提要无论如何都是公开的,所以我不知道为什么它首先需要身份验证]。
非常感谢!
【问题讨论】:
您是否尝试过使用您的帐户 (twitter.com/settings/widgets) 为 Web 创建一个列表小部件,然后挖掘其 JS 代码以检索该特定列表的公共端点,然后在您的应用程序中将其用作来源?我看到 'localhost' 是自动支持的,所以从技术上讲,通过应用程序在本地获取它应该是可能的 - 但我没有尝试过,这是我脑海中的想法。 【参考方案1】:更新:他们似乎是这种方法中的请求限制问题,请使用以下答案https://***.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 Limit
==================================
如果你还没有找到解决办法,你可以试试这个方法
在推特https://dev.twitter.com/apps注册您的应用
在应用信息页面底部的“点击创建我的访问令牌”按钮,它将创建访问令牌和密码
下载FHSTwitterEnginehttps://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 添加到您的项目中
【讨论】:
【参考方案2】:使用 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];
【讨论】:
以上是关于iOS 应用程序中的 Twitter 提要 - 我如何仅从我自己的帐户获取列表提要 [无需应用用户登录 Twitter]的主要内容,如果未能解决你的问题,请参考以下文章
在 MEAN 堆栈中实现 facebook / twitter 样式提要的最有效方法是啥?我应该考虑socket.io吗? [关闭]
如何在 iOS 应用程序上显示 Facebook 用户的新闻提要?