在iOS上的后台可以自动共享Twitter吗?

Ank*_*yas 5 iphone twitter ios

我想在Twitter墙上分享Twitter提要,其中包含图片和一些文字.我想要从iOS 4.3到iOS 6.0.1的支持.没有发送/共享按钮可以在后台共享吗?我该如何实现它?

mar*_*hiz 3

您需要发送的 API 调用是:

https://dev.twitter.com/docs/api/1.1/post/statuses/update_with_media

当然,在进行该调用之前,您需要通过 xAuth/OAuth 向 Twitter 进行身份验证。除非您获得 Twitter 的特别许可否则您将需要使用 OAuth,

https://dev.twitter.com/docs/oauth/xauth

要在后台请求,使用 Grand Central Dispatch 可能是有意义的——除非您有很多不同的 Twitter 请求要发送。在这种情况下,我会选择NSOperationQueuewhere maxConcurrentOperationCount = 1。请参阅以下内容:

http://www.fieryrobot.com/blog/2010/06/27/a-simple-job-queue-with-grand-central-dispatch/

http://www.raywenderlich.com/19788/how-to-use-nsoperations-and-nsoperationqueues

尽管如此,由于 OAuth 非常麻烦,因此使用第三方库可能是有意义的。我以前从未使用过它,但这里有一个使用 MGTwitterEngine 的示例:

Twitter 在 iOS 上的 statuses/update_with_media 返回 500 错误

如果您能够限制使用 iOS 5+,那么我强烈建议使用该SLRequest对象。这种方法的优点是您可以直接与 iOS 用户帐户集成,因此他们不必通过 UIWebView 或其他一些俗气的东西进行身份验证。

为此,您只需在以下函数中插入适当的 Twitter API urlrequestForServiceType:requestMethod:URL:parameters:并获取您的SLRequest对象。ACAccount然后分配从ACAccountStore使用中获得的适当的 Twitter requestAccessToAccountsWithType:options:completion:。最后调用performRequestWithHandler,然后它将异步执行您的请求。