首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将令牌和令牌seceret传递给oauth swift

如何将令牌和令牌seceret传递给oauth swift
EN

Stack Overflow用户
提问于 2018-01-16 14:36:31
回答 1查看 1.6K关注 0票数 0

如何在oauth swift库上传递令牌和令牌秘密

我在lib的git文档中找到了以下代码

代码语言:javascript
复制
// create an instance and retain it
let oauthswift = OAuth1Swift(
    consumerKey:    "********",
    consumerSecret: "********"
)
// do your HTTP request without authorize
oauthswift.client.get("https://api.example.com/foo/bar",
    success: { response in
        //....
    },
    failure: { error in
        //...
    }
)

但是除了consumerKey和consumerSecret,我还有token和TokenSecret。所以我可以在oAuthSwift库中传递它。

我尝试了下面的代码

代码语言:javascript
复制
let  oauthswift = OAuth1Swift(
            consumerKey:"102xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            consumerSecret:"5xxxxxxxxxxxxxxxxxxxxxxxxxxx",
            token:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            tokenSeceret:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        )

但它会给出错误“无法使用参数列表调用'OAuth1Swift‘类型的初始化器”这个库中还有另一个可用的初始化器,如下所示

代码语言:javascript
复制
// create an instance and retain it
oauthswift = OAuth1Swift(
    consumerKey:    "********",
    consumerSecret: "********",
    requestTokenUrl: "https://api.twitter.com/oauth/request_token",
    authorizeUrl:    "https://api.twitter.com/oauth/authorize",
    accessTokenUrl:  "https://api.twitter.com/oauth/access_token"
)
// authorize
let handle = oauthswift.authorize(
    withCallbackURL: URL(string: "oauth-swift://oauth-callback/twitter")!,
    success: { credential, response, parameters in
      print(credential.oauthToken)
      print(credential.oauthTokenSecret)
      print(parameters["user_id"])
      // Do your request
    },
    failure: { error in
      print(error.localizedDescription)
    }             
)

但是我们没有这样的链接来获取token,而是使用已经创建的token和secrete

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-17 17:09:41

在调用request之前使用以下两行

代码语言:javascript
复制
oauthswift.client.credential.oauth_token = {your stored token}
oauthswift.client.credential.oauth_token_secret = {your stored secret token}

即你的代码变成了

代码语言:javascript
复制
// create an instance and retain it
let oauthswift = OAuth1Swift(
    consumerKey:    "********",
    consumerSecret: "********"
)

//Set Token and TokenSecret
    oauthswift.client.credential.oauth_token = "asxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    oauthswift.client.credential.oauth_token_secret = "1cxxxxxxxxxxxxxxxxxxxxxxx"


// do your HTTP request
oauthswift.client.get("https://api.example.com/foo/bar",
    success: { response in
        //....
    },
    failure: { error in
        //...
    }
)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48275331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档