android新浪微博开发failed to receive access token 的解决办法

本文介绍如何使用OAuth2.0通过新浪微博SDK进行授权验证。包括下载SDK、配置Appkey及回调网址等步骤,并解决可能出现的授权失败问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是利用oauth2.0来验证授权的 

在网址http://code.google.com/p/android-weibo-sdk/downloads/list下载weibo_sdk_source_code 内有两个文件夹 用eclipse打开

在examples文件夹 内的Authactivity中填写App key 和 Appsecret 和 回调网址 (在新浪微博的管理应用  基本信息 高级信息 内填写  必须填)填好了 运行这个demo 就可以授权了

如果出现failed to receive access token

在com_weibo_android文件中

将 com.weibo.net.Token.java文件中 
public void setExpiresIn(String expiresIn) {
if (expiresIn != null && !expiresIn.equals("0")) {
setExpiresIn(System.currentTimeMillis() + Integer.parseInt(expiresIn) * 1000);
}
}

改为:

public void setExpiresIn(String expiresIn) {
if (expiresIn != null && !expiresIn.equals("0")) {
setExpiresIn(System.currentTimeMillis() + Long.parseLong(expiresIn) * 1000);
}
}


好的,为了去掉二维码登录逻辑并确保使用已经在电脑端登录的微信账号进行自动回复操作,我们可以利用`wxpy`库的内置功能来简化这一过程。下面是一个基于您提供的代码片段改造后的完整例子。 首先需要安装依赖库(如果还未安装的话),可以使用pip命令: ```bash pip install wxpy requests ``` 接下来是修改后的代码: ```python import time import json import requests from wxpy import Bot, FRIENDS def get_access_token(api_key, secret_key): """ 使用 API Key 和 Secret Key 获取 access_token。 :param api_key: 百度AI平台的应用API Key :param secret_key: 百度AI平台的应用Secret Key :return: 返回获取到的 access_token 字符串 """ url = "https://aip.baidubce.com/oauth/2.0/token" params = { 'grant_type': 'client_credentials', 'client_id': api_key, 'client_secret': secret_key } response = requests.get(url, params=params) if response.status_code != 200: raise Exception("Failed to obtain access token.") return response.json().get("access_token") class WXAutoReply(object): def __init__(self, api_key, secret_key): self.api_key = api_key self.secret_key = secret_key # 启动机器人并且禁用控制台日志输出(这里使用的是已登录的微信账号) self.bot = Bot(console_qr=False, cache_path=True) # 监听好友消息 @self.bot.register(FRIENDS, TEXT) def reply_friend_message(msg): print(f"Received message from {msg.member.name}: {msg.text}") self.handle_message(msg) def handle_message(self, msg): """ 处理收到的消息,并向用户发送AI生成的回答。 :param msg: 收到的消息对象 """ ai_reply = self.query_ai(msg.text) if ai_reply is not None: msg.reply(ai_reply + "\n\n--此内容为AI生成") def query_ai(self, text): """ 查询百度AI平台获得针对给定文本的回答。 :param text: 用户输入的问题或句子 :returns: AI返回的答案字符串;若请求失败则返回None """ access_token = get_access_token(self.api_key, self.secret_key) url = f"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token={access_token}" payload = json.dumps({ "messages": [{"role": "user", "content": text}] }) headers = {'Content-Type': 'application/json'} try: resp = requests.post(url=url, headers=headers, data=payload) res_json = resp.json() if 'result' in res_json and len(res_json['result']) > 0: return res_json["result"][0]["content"] else: print("[Error] Failed to receive valid response from WenXin Workshop:", res_json) return None except Exception as e: print(f"[Exception] Querying AI failed with exception: {e}") return None if __name__ == '__main__': # 配置你的百度AI平台应用信息 API_KEY = '[Your_API_Key]' SECRET_KEY = '[Your_Secret_Key]' auto_replier = WXAutoReply(API_KEY, SECRET_KEY) # 让程序保持运行以便持续监听新消息 while True: time.sleep(5) # 注意事项: # - 将 [Your_API_Key], [Your_Secret_Key] 替换为你从百度AI平台上创建的应用对应的key和secret key. # - 这段代码将会每五秒轮询一次是否有新的消息到达。实际部署时建议采用更高效的方式比如webhook等异步机制。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值