2

我正在编写一个 python 脚本来添加指向我自己的 Pocket 帐户的链接。我正在遵循这些步骤。

  1. 获取消费者密钥:我有一个从 Pocket 开发者应用程序生成的消费者密钥
  2. 生成请求令牌:我使用以下代码生成了请求令牌

    pocket_get_request_token_url = "https://getpocket.com/v3/oauth/request"
    headers = {"Content-Type": "application/json; charset=UTF-8",
              "X-Accept": "application/json"}
    
    params = {"consumer_key": consumer_key,
              "redirect_uri": "pocketapp1234:authorizationFinished"}
    
    pocketOAuth = requests.post(pocket_get_request_token_url,
                                json=params, headers=headers)
    
    request_token = json.loads(pocketOAuth.text)["code"]
    
  3. 授权请求令牌:第 3 步是使用以下代码授权令牌。我不知道如何为 python 脚本运行这个块。

    pocket_auth_request_token_url = "https://getpocket.com/auth/authorize"
    params = {"request_token": request_token,
          "redirect_uri": "pocketapp1234:authorizationFinished"}
    authResp = requests.post(pocket_auth_request_token_url, json=params)
    
  4. 生成访问令牌:第 4 步是生成访问令牌。如果我继续使用以下代码生成访问令牌,

    pocket_get_access_token_url = "https://getpocket.com/v3/oauth/authorize"
    headers = {"Content-Type": "application/json; charset=UTF-8",
           "X-Accept": "application/json"}
    
    params = {"consumer_key": consumer_key,
          "code": request_token}
    
    accessResp = requests.post(pocket_get_access_token_url,
                           json=params, headers=headers)
    
    access_token = json.loads(accessResp.text)["access_token"]
    

当我运行上面的代码块时,出现以下错误。

x-error-code : 158 x-error : 用户拒绝的代码

所以我的问题是,如果我尝试使用 python 脚本将链接添加到我的袖珍帐户,我显然没有运行 Web 应用程序,那么如何授权生成的请求令牌以便我可以继续生成访问令牌

4

2 回答 2

3

为了补充岳的答案,如果您从脚本运行它,重定向 URI 是无关紧要的。我也遇到了这个问题并用来input使我的脚本具有交互性:https ://gist.github.com/alexpyoung/7e241a8f3f805630f0f66a1cf0763675#file-pocket_import-L71

于 2020-04-17T07:08:34.657 回答
2

我正在尝试授权 Pocket Developer API 并按照您的步骤操作。但是,我根据Getting Started With the Pocket Developer API在步骤 3 中尝试了不同的方法。

您应该使用您的请求令牌和重定向 URI 修改以下 URL,然后在浏览器中打开它:https ://getpocket.com/auth/authorize?request_token=YOUR_REQUEST_TOKEN&redirect_uri=YOUR_REDIRECT_URI

于 2016-02-21T17:00:40.297 回答