Ошибка аутентификации Twitter SLRequest

Я пытался получить пользовательские данные Twitter, используя встроенные учетные записи iOS и платформы Twitter.

Я успешно получаю доступ к учетной записи пользователя на телефоне. Однако при отправке SLRequest в твиттер я получаю сообщение об ошибке без проверки подлинности. У меня сложилось впечатление, что назначение пользователя ACCount для твиттера SLRequest.account выполнило необходимые части OAuth.

Код из тестового проекта, который я настроил

Любая обратная связь очень ценится!

var accountArray = AnyObject var account = ACAccount()

override func viewDidLoad() {
super.viewDidLoad()

let accountStore: ACAccountStore = ACAccountStore()
let twitterAccountType: ACAccountType = accountStore.accountTypeWithAccountTypeIdentifier(ACAccountTypeIdentifierTwitter)
let url = NSURL(string: "https://api.twitter.com/1.1/users/show.json")
let params: NSDictionary = ["field": "user_id, screen_name"]

accountStore.requestAccessToAccountsWithType(twitterAccountType, options: nil, completion: { (success, error) -> Void in

  if success {
     let account = accountStore.accountsWithAccountType(twitterAccountType)
    if let userAccount = account.first as? ACAccount {
      self.accountsArray.append(userAccount)

      let twitterRequest = SLRequest(forServiceType: SLServiceTypeTwitter, requestMethod: SLRequestMethod.GET, URL: url, parameters: params as [NSObject : AnyObject])

Из того, что я нашел, я подумал, что строка ниже охватывает требование OAuth для twitter API версии 1.1.

      twitterRequest.account = userAccount
      twitterRequest.performRequestWithHandler({ (responseData : NSData?, urlResponse : NSHTTPURLResponse?, error : NSError?) -> Void in

          print("data : \(responseData)")
          if let response = responseData {
            var dict = NSDictionary()
            do {
              dict = try! NSJSONSerialization.JSONObjectWithData(response, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
            }
            print(dict)
        } else if error != nil {
          print("Error : \(error)")
        }
      })
    }
  } else if (error != nil) {
    print("nooope")
  }
})

  }
}

Что возвращено из словаря:

{
 errors = (
           {
            code = 50;
            message = "User not found.";
           }
        );
}

person wambambizzle    schedule 21.03.2016    source источник


Ответы (1)


словарь params должен быть:

["screen_name": "username"]
person wambambizzle    schedule 21.03.2016