
掌握ChatGPT插件與自定義GPT
完善基本信息后,您需要提交身份認證材料。請填寫相關身份信息,并上傳身份證照片,然后提交審核。
提交材料后,等待審核通過。審核通過后,您將完成開發者身份認證,接下來可以創建自己的應用。
在微博開放平臺上,找到創建應用的入口,填寫應用名稱并創建應用。請注意,應用名稱不能重復。
在創建應用的頁面,您需要填寫應用的基本信息,如名稱、描述等。完成后,您可以看到新創建的應用出現在您的應用列表中。
在應用的高級信息設置中,您需要配置OAuth2.0授權相關的信息,包括授權回調頁和取消授權回調頁的地址。
在應用信息界面,您將看到應用的狀態為“尚未提交審核”。此時,最重要的是獲取App Key和App Secret,請確保這兩個值的安全。
高級信息配置中,設置OAuth2.0的授權回調頁。若無自有域名,可使用微博默認回調頁。
完成上述配置后,您的應用已經準備好進行微博API的調用,可以進行下一步的認證流程。
為了成功調用微博熱搜API的免費服務,您需要在OAuth2.0認證流程中獲取Access Token。
您可以使用GitHub上的sinaweibopy3模塊來簡化認證流程。將其下載并配置自己的APP_KEY
、APP_SECRET
、REDIRECT_URL
。
在用戶授權成功后,您將獲得一個短期有效的code,用它來獲取Access Token。代碼示例如下:
import requests
def get_access_token(code):
url = "https://api.weibo.com/oauth2/access_token"
data = {
'client_id': 'APP_KEY',
'client_secret': 'APP_SECRET',
'grant_type': 'authorization_code',
'redirect_uri': 'REDIRECT_URL',
'code': code
}
response = requests.post(url, data=data)
return response.json()
在開發階段,由于應用未提交審核,Access Token的授權級別為“測試”,有效期為1天。
在Access Token過期后,您需要按照之前的步驟重新獲取一個新的Token。
務必確保Access Token的安全性,避免泄露,防止未經授權的訪問。
使用Access Token后,您可以調用API接口,如評論接口。官方文檔提供了接口調用的詳細信息。
根據文檔構造請求參數,然后通過POST請求發送到指定的API接口。
def send_comment(access_token, weibo_id, comment):
url = "https://api.weibo.com/2/comments/create.json"
params = {
'access_token': access_token,
'id': weibo_id,
'comment': comment
}
response = requests.post(url, data=params)
return response.json()
在請求中,記得填寫公網IP,避免請求失敗。
在GitHub上克隆sinaweibopy3項目,獲取源代碼,以便進行微博熱搜API的免費調用。
git clone https://github.com/olwolf/sinaweibopy3.git
由于微博API的更新,您需要對項目中的某些代碼進行修改,例如更新接口的json文件名。
修改完成后,運行項目,測試能否成功獲取微博API的數據。
import sinaweibopy3
APP_KEY = 'xxxxxx' # Your Key
APP_SECRET = 'xxxxxx' # Your Secret
REDIRECT_URL = 'https://api.weibo.com/oauth2/default.html'
client = sinaweibopy3.APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=REDIRECT_URL)
url = client.get_authorize_url()
webbrowser.open_new(url)
code = input("please input code: ")
result = client.request_access_token(code)
client.set_access_token(result.access_token, result.expires_in)
通過測試代碼,驗證您是否可以成功獲取微博數據。
res = client.public_timeline().statuses
for status in res:
print(f'昵稱:{status['user']['screen_name']}')
print(f'簡介:{status['user']['description']}')
print(f'位置:{status['user']['location']}')
print(f'微博:{status['text']}')
GOOD LUCK! 祝你好運!
APP_KEY
、APP_SECRET
和REDIRECT_URL
。使用模塊提供的API進行授權流程操作,獲取Access Token以調用微博熱搜API的免費服務。