访问 bit.ly API 以使用 Python 缩短 URL 时出现 403 错误
403 error when accessing bit.ly API to shorten URL with Python
这是我使用的代码:
import re
import sys
import glob
import json
import requests
import os
from pprint import pprint
if len(sys.argv) > 1:
urls_json = sys.argv[1]
else:
urls_json = "enlaces.json"
with open( urls_json ) as data_file:
urls = json.load(data_file)
api_key = os.environ["BITLY_TOKEN"]
group_guid = os.environ["BITLY_USER"]
shortened_links = []
for u in urls:
payload = json.dumps({'long_url': u[1], "domain": "bit.ly", "group_guid": group_guid })
print(payload)
response = requests.post( "https://api-ssl.bitly.com/v4/shorten",
data=payload,
headers={'Authorization': f"Bearer {api_key}" } )
pprint(vars(response.raw))
pprint(vars(response.request))
这始终returns 403 禁止。 header 是正确的,但我不太确定 group_guid;我正在为此使用我的用户名。我通过向 API 发出 curl 请求获得了令牌。任何的想法?这是正确的吗?
只需消除group_guid
:
payload = json.dumps({'long_url': u[1], "domain": "bit.ly" })
尽管在 the API documentation 中作为参数之一明确指出。 returns "Created"
的 201
headers={'Authorization': f"Bearer {api_key}" }
应该是
headers={'Authorization': f"{api_key}" }
这是我使用的代码:
import re
import sys
import glob
import json
import requests
import os
from pprint import pprint
if len(sys.argv) > 1:
urls_json = sys.argv[1]
else:
urls_json = "enlaces.json"
with open( urls_json ) as data_file:
urls = json.load(data_file)
api_key = os.environ["BITLY_TOKEN"]
group_guid = os.environ["BITLY_USER"]
shortened_links = []
for u in urls:
payload = json.dumps({'long_url': u[1], "domain": "bit.ly", "group_guid": group_guid })
print(payload)
response = requests.post( "https://api-ssl.bitly.com/v4/shorten",
data=payload,
headers={'Authorization': f"Bearer {api_key}" } )
pprint(vars(response.raw))
pprint(vars(response.request))
这始终returns 403 禁止。 header 是正确的,但我不太确定 group_guid;我正在为此使用我的用户名。我通过向 API 发出 curl 请求获得了令牌。任何的想法?这是正确的吗?
只需消除group_guid
:
payload = json.dumps({'long_url': u[1], "domain": "bit.ly" })
尽管在 the API documentation 中作为参数之一明确指出。 returns "Created"
的 201headers={'Authorization': f"Bearer {api_key}" }
应该是
headers={'Authorization': f"{api_key}" }