
掌握ChatGPT插件与自定义GPT
本文详细讲解了如何免费调用微博热搜API,涵盖了从开发者身份认证到应用创建和配置的完整流程。通过使用OAuth2.0认证机制,获取Access Token,实现对微博API的访问,包括评论接口的调用示例。通过该教程,您将能够创建并配置自己的微博应用,获得API访问权限,掌握微博API的基本使用方法。
在开始微博热搜API的免费调用之前,您需要先进行开发者身份认证。访问微博开放平台,使用您的微博账号登录。登录后,您需要完善开发者的基本信息。
完善基本信息后,您需要提交身份认证材料。请填写相关身份信息,并上传身份证照片,然后提交审核。
提交材料后,等待审核通过。审核通过后,您将完成开发者身份认证,接下来可以创建自己的应用。
在微博开放平台上,找到创建应用的入口,填写应用名称并创建应用。请注意,应用名称不能重复。
在创建应用的页面,您需要填写应用的基本信息,如名称、描述等。完成后,您可以看到新创建的应用出现在您的应用列表中。
在应用的高级信息设置中,您需要配置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的免费服务。