2015-07-28 17 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確實進入了這一點,但它應該比它應該稍微偏離。