iOS 5+:为其他用户阅读Twitter状态/ home_timeline

时间:2012-11-06 11:55:06

标签: ios tweets

在我的应用中,我想显示来自其他用户时间轴的推文。有可能吗?我可以访问不需要auth的user_timelines,但是对于home_timelines,我需要进行身份验证,但是我如何才能读取其他用户的公共时间线?

1 个答案:

答案 0 :(得分:0)

如果您希望从特定用户的home_timeline获取推文,则需要进行身份验证。不幸的是,您最好的选择可能只是授权并获取设备上的帐户。然而,这不是一项艰巨的任务。以下是我在Twitter应用程序中用于请求访问帐户的一些代码。

    // Create an account store object.
    ACAccountStore *accountStore = [[ACAccountStore alloc] init];

    // Create an account type that ensures Twitter accounts are retrieved.
    ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];

    // Request access from the user to use their Twitter accounts.
    [accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error) {

        if(granted) {
            // Get the list of Twitter accounts.
            NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];

            // For the sake of brevity, we'll assume there is only one Twitter account present.
            // You would ideally ask the user which account they want to tweet from, if there is more than one Twitter account present.
            if ([accountsArray count] > 0) {
                // Grab the initial Twitter account to tweet from.
                ACAccount *twitterAccount = [accountsArray objectAtIndex:0];

                //At this point, the twitterAccount has been pulled into the *twitterAccount object.
            }
        }

修改 根据以下评论,您希望在BBC中显示home_timeline,与您在twitter.com/BBCNews中看到的内容类似。 home_timeline API调用仅返回当前已通过身份验证的帐户的时间轴。这意味着您只能获取正在使用您的应用程序的用户的时间线。

如果您想获取其他用户的时间轴,例如BBCNews,您需要使用user_timeline API调用并在参数中指定您想要时间轴的用户,类似于twitter example that selects the timeline of the twitterapi account

此外,从它的声音来看,user_timeline API调用对您不起作用,因为您还想查看转发。如果您查看the documentation,您会看到一个可选参数,您可以在对include_rts的API调用中使用该参数,其中包含或不包含转推。

这将解决您的问题。很多时候,当我使用Twitter API并遇到问题时,我会问自己“问题是我面临一个简单的问题吗?”。如果您实际遇到的问题确实很简单,您可以放心,问题已经可能已经处理或解决,您还没有找到解决方案。继续破解它。 user_timeline是您想要使用的,只需使用参数即可。