[英]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.