[英]Getting single Tweet with TwitterKit/Fabric authentication failure
我试图检索单个推文,并通过TWTRTweetView
提供的TWTRTweetView将其显示在我的应用程序中。 我遵循了本结构指南 ,并得到了以下代码。
import UIKit
import TwitterKit
class SingleTweetViewController: UIViewController{
@IBOutlet weak var plainView: UIView!
override func viewDidLoad(){
super.viewDidLoad()
Twitter.sharedInstance().logInGuestWithCompletion { session, error in
if let validSession = session {
Twitter.sharedInstance().APIClient.loadTweetWithID("4831830029115392") { tweet, error in
if let t = tweet {
let tweetView = TWTRTweetView(tweet: tweet)
tweetView.showActionButtons = true
self.plainView.addSubview(tweetView)
} else {
println("Failed to load Tweet: \(error?.localizedDescription)")
}
}
} else {
println("Unable to login as guest: \(error.localizedDescription)")
println(error?.localizedFailureReason)
}
}
}
由于身份验证失败,代码会生成这两个错误。
Unable to login as guest: Request failed: forbidden (403)
Optional("Twitter API error : Unable to verify your credentials (code 99)")
值得一提的是,该应用通过本指南后添加的登录按钮成功登录了Twitter。 有谁知道如何解决此错误的线索? 我在这里缺少一些代码还是与Fabric相关的问题?
您必须先初始化Fabric,然后才能尝试使用它,这是您在示例代码中所做的。
对于初始化,请遵循Fabric文档站点上的说明 。 本质上,您已将以下行添加到您的应用程序委托中(除了导入TwitterKit之外):
Twitter.sharedInstance().startWithConsumerKey("your_key", consumerSecret: "your_secret")
Fabric.with([Twitter.sharedInstance()])
然后复制并粘贴您是fabric.io的使用者密钥和秘密。 Fabric应该自动为您生成这些。
我使用与“添加登录按钮”选项相同的菜单中的“应用程序中的查看推文”选项内置的Fabric应用程序解决了该问题。 然后,Fabric应用程序将正确的身份验证密钥插入Info.plist
文件。 Fabric应用程序提供的代码似乎与Fabric文档上提供的代码具有相同的作用,但是结果因所使用的代码而异。 这两个代码示例如下所示:
Fabric文档中的代码:
Twitter.sharedInstance().logInGuestWithCompletion { session, error in
if let validSession = session {
Twitter.sharedInstance().APIClient.loadTweetWithID("20") { tweet, error in
if let t = tweet {
self.tweetView.configureWithTweet(t)
} else {
println("Failed to load Tweet: \(error.localizedDescription)")
}
}
} else {
println("Unable to login as guest: \(error.localizedDescription)")
}
}
Fabric应用程序中的代码:
Twitter.sharedInstance().logInGuestWithCompletion { (session, error) in
Twitter.sharedInstance().APIClient.loadTweetWithID("20") { (tweet, error) in
self.view.addSubview(TWTRTweetView(tweet: tweet))
}
}
运行第一个代码将给出身份验证错误,而第二个代码将加载没有问题的推文。 if let validSession = session
的if语句返回false
,则发生认证错误。 我找不到validSession
到底是什么,但是它可能会比较两组不同的键或类似的键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.