Ios Twitter应用程序仅使用“身份验证”;不记名代币;
简短问题: 我已经在apps.twitter.com上为我的应用程序生成了一个访问令牌和一个访问令牌机密。如何使用它们向Ios Twitter应用程序仅使用“身份验证”;不记名代币;,ios,objective-c,twitter,twitter-oauth,Ios,Objective C,Twitter,Twitter Oauth,简短问题: 我已经在apps.twitter.com上为我的应用程序生成了一个访问令牌和一个访问令牌机密。如何使用它们向https://api.twitter.com/1.1/statuses/user_timeline.json 承载令牌由什么组成?是访问令牌还是访问令牌机密?还是两者的编码 上下文位: 我正在尝试制作一个应用程序,从我的推特时间线下载推特,而不需要应用程序用户通过他们的推特帐户进行身份验证。我理解我必须使用仅应用程序身份验证,并且文档()说明我需要使用消费者密钥和消费者秘
https://api.twitter.com/1.1/statuses/user_timeline.json
承载令牌由什么组成?是访问令牌还是访问令牌机密?还是两者的编码
上下文位: 我正在尝试制作一个应用程序,从我的推特时间线下载推特,而不需要应用程序用户通过他们的推特帐户进行身份验证。我理解我必须使用仅应用程序身份验证,并且文档()说明我需要使用消费者密钥和消费者秘密来请求承载令牌。但是如果我已经使用generate按钮在apps.twitter.com上生成了令牌:
当然,我可以将这些硬编码到我的应用程序中,并以某种方式将它们作为承载令牌传递出去?我希望这样:
#define kTwitterBearerToken @"123456"
NSURL *twitterFeedURL = [NSURL URLWithString:@"https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=kylejm_&count=10"];
NSMutableURLRequest *URLRequest = [NSMutableURLRequest requestWithURL:twitterFeedURL];
[URLRequest setHTTPMethod:@"POST"];
[URLRequest setValue:[NSString stringWithFormat:@"Bearer %@", kTwitterBearerToken] forHTTPHeaderField:@"Authorization"];
NSURLResponse *URLResponse;
NSError *URLerror;
NSData *tweetData = [NSURLConnection sendSynchronousRequest:URLRequest returningResponse:&URLResponse error:&URLerror];
NSError *JSONError;
NSArray *tweets = [NSJSONSerialization JSONObjectWithData:tweetData options:0 error:&JSONError];
NSLog(@"%@", tweets);
提前感谢您的回答和帮助 凯尔
另外,我已经看过了,但我认为在我试图实现的目标非常简单的情况下,使用它是有点不必要的(至少将预先生成的令牌传递给我似乎很简单)…以下是我对应用程序基本时间线的想法。我打字的时候正在仔细考虑,所以请容忍我 启动时检查您是否缓存了承载令牌(最好将其存储在密钥链中,而不是用户默认值中) 否:如果没有承载令牌,请执行步骤2中概述的呼叫。然后坚持到钥匙链,然后继续 是:从永久钥匙链商店取回它*继续 现在您有了一个承载令牌,您需要创建一个Base64编码字符串(iOS有供您使用的方法),并在前面链接的页面第3步的请求中使用该编码字符串 如果在任何时候您需要重置承载令牌,例如,如果您检测到一些不成功的登录,并希望为用户提供一个流程来尝试解决该问题,则会有一个调用请求,以使承载令牌无效,然后重新请求它,基本上重复初始流程 正如其他人提到的,Twitter有一些恼人的速率限制,因此最好缓存返回的流结果并将其用于显示,然后使用速率限制较小的调用来查找某个日期范围内的tweet数量,以便确定是否需要更新缓存的数据。这只是我如何处理它的一个想法;我肯定有;s签出API文档时将显示的其他内容 希望这有助于……:)
- 哦,是的,钥匙链。有一些不错的示例代码用于在应用程序中检索/写入/删除密钥链条目。同样:GitHub
- 在您的“”帐户上创建应用程序
- 获取“kConsumerKey”和“kConsumerSecretKey”
- 使用“kConsumerKey”和“kConsumerSecretKey”获取Base64EncodedBearToken
- 使用“基本授权”进行“kTwitterAuthAPI”调用
- 获取“访问令牌”并在“承载授权”呼叫中使用
- 这是我生成Twitter承载令牌的要点
要获取仅用于twitter应用程序身份验证的访问令牌: 有关详细信息:
查看更多的澄清 对于仅应用程序身份验证,您不需要访问令牌和访问令牌密钥,只需要使用者密钥和使用者密钥即可。您可以为任何未受保护的用户获取推文。考虑一下利率限制。谢谢Vishal。我说的对吗?你使用消费者密钥和秘密作为不记名代币?不记名代币与apps.twitter.com上生成的代币完全不同吗?老实说,我忘了,从app的角度来看,我现在处于不在乎模式,所以希望有更熟悉的人可以回答。