通过Fabric安装Twitter,登录工作,请求tweet的持续错误



我已经通过Fabric.app在一个项目中安装了Twitter SDK。我能够登录到我的Twitter帐户,但是当我做任何与请求tweet相关的事情时,我抛出了这些print语句:

print("Failed to load tweets: (error!.localizedDescription)")
print(error?.localizedFailureReason)

并得到这个错误:

Failed to load tweets: Request failed: forbidden (403)
Optional("Twitter API error : Unable to verify your credentials (code 99)")

但是当我将这行添加到TVC上的viewDidLoad时,我返回一个值:

print("Twitter.sharedInstance().sessionStore.session()?.userID is (Twitter.sharedInstance().sessionStore.session()?.userID)")

在我的Info.plist中有一个Fabric条目。我没有从Fabric.app安装中更改或操作它。

在我的AppDelegate.swift的didFinishLoadingWithOptions:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // I tried using the consumerKey/consumerSecret for Fabric & Twitter for S's & G's to no avail
    Twitter.sharedInstance().startWithConsumerKey("myConsumerKey", consumerSecret: "myConsumerSecret")
    Fabric.with([Twitter.self()])
    return true
}

我浏览了Fabric的Twitter设置清单re: setup,我已经做了所有的事情,但我显然搞砸了一些东西。来自Fabric网站的示例代码对我来说并不"开箱即用"。有什么想法吗:在哪里寻找问题?我没主意了。

当您请求tweet时,我想象您的代码看起来像下面这样,对吗?

let client = TWTRAPIClient()
let dataSource = TWTRUserTimelineDataSource(screenName: "fabric", APIClient: client)

原来他们的文档是不完整的,它应该看起来像

let userID = Twitter.sharedInstance().sessionStore.session()?.userID
let client = TWTRAPIClient(userID: userID)
let dataSource = TWTRUserTimelineDataSource(screenName: "fabric", APIClient: client)

客户端对象需要你的用户信息来做它的事情。我也有同样的问题

另一个变化…它不再是APIClient而是APIClient

let userID = Twitter.sharedInstance().sessionStore.session()?.userID
let client = TWTRAPIClient(userID: userID)
let dataSource = TWTRUserTimelineDataSource(screenName: "fabric", apiClient: client)

最新更新