在使用Python获取公众号平台的API时,我先使用测试号的 AppID 和 AppSecret 在同一网络下进行获取access_token操作。在使用测试号时,能返回access_token,但是切换到了正式的公众号的 AppID 和 AppSecret 之后,使用同样的代码,仍然出现了40164。
代码如下:
def get_access_token(app_id, app_secret):
url = f'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={app_id}&secret={app_secret}'
try:
response = requests.get(url)
data = response.json()
if 'access_token' in data:
return data['access_token']
else:
print(f"Error: {data}")
return None
except Exception as e:
print(f"Error:{str(e)}")
return None
access_token = get_access_token(APP_ID, APP_SECRET)
if access_token:
print(f"Access Token: {access_token}")
else:
print("Failed to retrieve Access Token.")
最终的返回数据包如下:
Error: {'errcode': 40164, 'errmsg': 'invalid ip 182.242.225.37 ipv6 ::ffff:182.242.225.37, not in whitelist rid: 64fd6ade-32edceef-11767c44'}
Failed to retrieve Access Token.
由于现在网络是动态的,不过之前在使用网页接口调用工具中,使用测试号仍然能返回 请求成功 和相应的access_token,但是切换到了正式号上仍然出现了40164错误码。请问这需要怎么解决?
把服务端代码部署到固定IP的服务器上。