[Python] 纯文本查看 复制代码 import requests
import urllib.parse
# 应用配置
APP_KEY = "your_app_key"
APP_SECRET = "your_app_secret"
REDIRECT_URI = "your_callback_url"
# 获取授权 URL
def get_auth_url():
auth_url = f"https://api.weibo.com/oauth2/authorize?client_id={APP_KEY}&redirect_uri={urllib.parse.quote(REDIRECT_URI)}"
return auth_url
# 获取 Access Token
def get_access_token(code):
url = "https://api.weibo.com/oauth2/access_token"
payload = {
"client_id": APP_KEY,
"client_secret": APP_SECRET,
"grant_type": "authorization_code",
"redirect_uri": REDIRECT_URI,
"code": code
}
response = requests.post(url, data=payload)
if response.status_code == 200:
return response.json()
else:
raise Exception("获取 Access Token 失败:" + response.text)
# 上传图片
def upload_image(access_token, status, image_path):
url = "https://upload.api.weibo.com/2/statuses/upload.json"
files = {"pic": open(image_path, "rb")}
payload = {
"access_token": access_token,
"status": status
}
response = requests.post(url, data=payload, files=files)
if response.status_code == 200:
print("图片上传成功!")
return response.json()
else:
raise Exception("图片上传失败:" + response.text)
if __name__ == "__main__":
# 第一步:获取授权 URL
auth_url = get_auth_url()
print(f"请访问以下链接进行授权:{auth_url}")
# 第二步:输入授权后的 Code
code = input("请输入授权后的 Code:")
# 第三步:获取 Access Token
try:
token_info = get_access_token(code)
access_token = token_info["access_token"]
print(f"Access Token: {access_token}")
except Exception as e:
print(e)
exit()
# 第四步:上传图片
try:
image_path = input("请输入图片路径:")
status = input("请输入微博正文内容:")
result = upload_image(access_token, status, image_path)
print("微博发布结果:", result)
except Exception as e:
print(e) |