通过Fabric安装Twitter,登录工作,请求推文的持久性错误

Adr*_*ian 7 twitter ios swift twitter-fabric

我已经通过Fabric.app在一个项目中安装了Twitter SDK.我可以登录我的Twitter帐户,但是当我做任何与请求推文相关的事情时,我会抛出这些print声明:

print("Failed to load tweets: \(error!.localizedDescription)")
print(error?.localizedFailureReason)
Run Code Online (Sandbox Code Playgroud)

并得到此错误:

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

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

print("Twitter.sharedInstance().sessionStore.session()?.userID is \(Twitter.sharedInstance().sessionStore.session()?.userID)")
Run Code Online (Sandbox Code Playgroud)

我有一个Fabric条目Info.plist.我没有在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
}
Run Code Online (Sandbox Code Playgroud)

我通过Fabric的Twitter设置清单重新运行:设置并且我已经做了所有事情,但我显然已经搞砸了.来自Fabric网站的示例代码对我来说不是"开箱即用"的.任何想法:在哪里寻找问题?我没有想法.

Mad*_*las 5

当你请求推文时,我想你的代码如下所示,对吗?

let client = TWTRAPIClient()
let dataSource = TWTRUserTimelineDataSource(screenName: "fabric", APIClient: client)
Run Code Online (Sandbox Code Playgroud)

原来他们的文档不完整,应该是这样的

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

客户端对象需要您的用户信息来完成它的工作.我遇到过同样的问题.