【问题标题】:BambooHR Python GET Request returning Error 401BambooHR Python GET 请求返回错误 401
【发布时间】:2021-08-25 14:47:47
【问题描述】:

我正在尝试使用 python 从 Bamboo HR API 获取数据,但它返回错误 401(根据他们的文档,这意味着“您的 API 密钥丢失”)。我实际上尝试使用 Google Apps Script 做同样的事情,并且它工作得非常好。谁能建议我在python中做错了什么。快把我逼疯了。

文档链接 - https://documentation.bamboohr.com/reference#get-employees-directory-1

以下是我在 Python 中使用的代码

import requests

url = "https://api.bamboohr.com/api/gateway.php/companyDomain/v1/employees/directory"

headers = {
    "Accept": "application/json",
    "Authorization": "Basic API-KEY"
}

response = requests.request("GET", url, headers=headers)
print(response.text)

以下是我在 Google Apps 脚本中使用的代码

function myFunction() { 
  var url = "https://api.bamboohr.com/api/gateway.php/companyDomain/v1/employees/directory";
  var apiKey = "API-KEY";
  var authHeader = "Basic " + Utilities.base64Encode(apiKey + ":x");
  var res = UrlFetchApp.fetch( url, { "headers":{"Authorization": authHeader } } ); 
  var content = res.getContentText(); 
  Logger.log(res);
  Logger.log(content);
}

【问题讨论】:

    标签: python api


    【解决方案1】:

    您需要在 URL 中指定您的 API 密钥。

    import requests
    
    your_api_key = "your_api_key"
    
    url = f"https://{your_api_key}:x@api.bamboohr.com/api/gateway.php/subdomain/v1/employees/directory"
    
    headers = {
        "Accept": "application/json",
        "Authorization": your_api_key
    }
    
    r = requests.get(url, headers=headers)
    
    df = r.json()
    
    df= pd.json_normalize(df["employees"])
    

    这样就可以了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-08
      • 2017-06-18
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      • 2018-02-05
      相关资源
      最近更新 更多