iOS - 如何发布到twitter类似于facebook

问题描述:

我是我的应用程序中的MGTwitterEngine发布状态到twitter。
在我的设置中,我有切换决定是否发布。当开关打开时,如果twitter引擎没有授权,我要求twitter登录。并能够发布到Twitter。
但是,当我退出应用程序并重新开始,它不再被授权。
但是,如果你看到Facebook的iOS库,它保留了不同的应用程序启动之间的会话。当我重新启动我的应用程序时,如何让我的应用程序记住Twitter身份验证?iOS - 如何发布到twitter类似于facebook

Twitter采用OAuth 1.0协议,您应该使用它来进行身份验证。当你进行身份验证时,Twitter会给你一个访问令牌,然后你可以使用这个访问令牌来进行任何已认证的请求,例如发布推文。根据Twitter's documentation,这些访问令牌永不过期,除非用户拒绝您的应用或管理员暂停您的应用。

MGTwitterEngine有一个你应该遵守的MGTwitterEngineDelegate协议,在这个协议中有一个方法定义为- (void)accessTokenReceived:(OAToken *)aToken forRequest:(NSString *)connectionIdentifier这个方法应该在接收到访问令牌时被调用,当它被调用时接收到的令牌被传递给它。在没有任何关于MGTwitterEngine的进一步知识的情况下,您应该捕获该令牌并将其存储在安全的地方,如Keychain Service。稍后,当您构建必须经过身份验证的Twitter请求时,您可以从钥匙链中检索访问令牌并重新使用它。

正如我所说,这是我建议不知道MGTwitterEngine多少的过程,我期望MGTwitterEngine为您处理存取令牌的存储并在必要时重新使用它。但它可能不是这样构建的。

+0

除非有一个新的MGTwitterEngine fork/release,否则不要使用它,因为在我的经验中,它在iOS5上失败。我很乐意在这个问题上听到不同的答案,因为我习惯了这个问题。 – Till

+0

很高兴知道@Till,我可能会使用ShareKit,它似乎很流行http://getsharekit.com/ –

+1

ShareKit也被原作者停用,并且在iOS5中也存在问题。但是再次,iOS5带来了本地支持,所以为什么不在iOS5平台上提供本地解决方案并在其他平台上使用其中一种替代方案。 – Till