Установлен Twitter через Fabric, логин работает, постоянная ошибка при запросе твитов
Я установил Twitter SDK в проект через Fabric.app. Я могу войти в свою учетную запись Twitter, однако, когда я делаю что-либо, связанное с запросом твитов, я добавляю эти 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)")
но когда я добавлю эту строку в viewDidLoad
на моем TVC
Я возвращаю значение:
print("Twitter.sharedInstance().sessionStore.session()?.userID is \(Twitter.sharedInstance().sessionStore.session()?.userID)")
E сть 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
}
Я проверил контрольный список настроек Twitter в Fabric: я сделал все, но я, очевидно, что-то испортил. Пример кода с веб-сайта Fabric не работает для меня "из коробки". Есть мысли по поводу: где искать проблему? У меня нет идей.
2 ответа
Когда вы запрашиваете твиты, я представляю, что ваш код выглядит следующим образом, правильно?
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)