2015-07-28 18 views
1

我想在我的应用程序中添加推文。 我已经实现登录按钮,并试图通过搜索API来访问的tweet(布)如何在swift中验证API?

https://api.twitter.com/1.1/search/tweets.json?q=Himan_dhawan

它显示了我错误认证错误

然后我提出通过将身份验证头身份验证的请求在这段代码的头

let twitter = Twitter.sharedInstance() 
    let oauthSigning = TWTROAuthSigning(authConfig:twitter.authConfig, authSession:twitter.session()) 
    let authHeaders = oauthSigning.OAuthEchoHeadersToVerifyCredentials() 
    let request = NSMutableURLRequest(URL: NSURL(string: "https://api.twitter.com/1.1/search/tweets.json?q=Himan_dhawan")!) 
    request.allHTTPHeaderFields = authHeaders 

但它仍然显示我错误认证.... 我被困到如何在一个加鸣叫pp ... 任何人都可以告诉我最简单的方法吗?

回答

0
let authHeaders = oauthSigning.OAuthEchoHeadersToVerifyCredentials() 
let urlHeader: AnyObject? = authHeaders[TWTROAuthEchoAuthorizationHeaderKey] 

request.allHTTPHeaderFields = urlHeader 

旁注:

Twitter的API。在野外的使用率很低,对swift的支持很少。为了迅速,为了避免上述问题,我使用swifter。 https://github.com/mattdonnelly/Swifter 。曾经提供您的使用者密钥等,为您完成所有的工作

+0

为什么上面的代码没有按预期工作?为什么它显示错误的身份验证?我问这个bcs我接近我的目标,我只想验证我的请求......我无法弄清楚我的问题....我卡住 –

+0

authheaders不是你需要的钥匙。 authHeaders [TWTROAuthEchoAuthorizationHeaderKey]是你需要的关键。 –

+0

我已经实现了你写的东西.....但它仍然显示我身份验证错误....这是什么原因....你有什么想法吗? –

0

织物的文档的不太给你想使用自己的NSMutableURLRequest时创建的OAuth签署头的全貌。

let authHeaders = oauthSigning.OAuthEchoHeadersToVerifyCredentials()

返回[NSObject : AnyObject]!字典给你你需要为请求的值,它提供了一个头什么都需要与NSMutableURLRequest发送什么不同。

这是你应该如何为此请求设置标头:

  let twitter = Twitter.sharedInstance() 

      let oauthSigning = TWTROAuthSigning(authConfig:twitter.authConfig, authSession:twitter.session()) 

      let authHeaders = oauthSigning.OAuthEchoHeadersToVerifyCredentials() 

      let mutableUrlWithUsableUrlAddress = NSMutableURLRequest(URL: usableUrlForRequest) 

      mutableUrlWithUsableUrlAddress.addValue(authHeaders[TWTROAuthEchoAuthorizationHeaderKey] as? String, forHTTPHeaderField: "Authorization") 

此设置所需的授权密钥,作为对请求的“授权”标头的值,而不是当你在传递给authHeaders字典中,它将设置为“X-Verify-Credentials-Authorization”。

Fabric doc's确实进入了这一点,但它应该比它应该稍微偏离。