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 用户的新闻提要?

我可以在引导弹出窗口中显示 Twitter 提要吗?

Twitter-打印用户的最新tweet(摘自PHP中的RSS提要和linkifies链接)

新推特中的RSS提要

仅按语言过滤 Twitter 提要