2017-04-06 156 views
0

我使用OAuth构建项目swift,我已经从我的API登录获取了Acces令牌,然后我想从我的acces令牌获取API JSon的数据。因此,如何使用OAuth获得请求的HTTP方法通过OAuth和我的存取权限令牌如何发送https GET请求与oauth

我有JSON解析STANDAR没有OAuth的

let url = NSURL(string: "https://conversation.8villages.com/1.0/contents/articles?state=published") 
    let request = NSMutableURLRequest(url: url! as URL) 
    request.httpMethod = "GET" 

    request.addValue("application/json", forHTTPHeaderField: "Authorization") 

    let task = URLSession.shared.dataTask(with: request as URLRequest) { data,response,error in 

     guard error == nil && data != nil else { 
      print("error", error!) 
      return 
     } 

     let httpStatus = response as? HTTPURLResponse 

     if httpStatus!.statusCode == 200 
     { 
      if data?.count != 0 
      { 
       let responString = try! JSONSerialization.jsonObject(with: data!, options: .allowFragments) 
       print(responString) 
      } 
      else{ 
       print("No got data from URL") 
      } 
     } 
     else 
     { 
      print("error httpstatus code is ", httpStatus!.statusCode) 
     } 
    } 

    task.resume() 

我已经习惯Librabry https://github.com/OAuthSwift/OAuthSwift

在那里我得到签名的请求(Readme.md)这样

oauthswift.client.get("https://api.linkedin.com/v1/people/~", 
success: { response in 
let dataString = response.string 
print(dataString) 
}, 
failure: { error in 
print(error) 
} 
) 

,但即时通讯混淆如何添加我的艾策斯令牌,使用者密钥和我的消费者的秘密进入电影我的API JSON

回答

0

如果您有访问令牌,看起来您已经使用了您的使用者密钥和使用者密码,并且您已通过身份验证。您需要在API获取调用的授权标头中传递载体访问令牌。

+0

如何考绩承载令牌先生?请告诉我:( –

0

我不熟悉OAuthSwift框架,但我猜的错误是以下行:

request.addValue("application/json", forHTTPHeaderField: "Authorization") 

也许应该是:

request.addValue("application/json", forHTTPHeaderField: "Content-Type") 
request.addValue(tokenType + " " + accessToken, forHTTPHeaderField: "Authorization") 

tokenType了OAuth的授权码补助键入始终是字符串BeareraccessToken当然是您从早期获得的访问令牌。

编辑:与微软Azure AD 比较:

GET /v1.0/me/messages 
Host: https://graph.microsoft.com 
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz... 
+0

先生,我的accesToken是2个关键,如令牌密钥和令牌秘密。所以。如何添加它们? –