You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Gemini在Android端报403 PERMISSION_DENIED错误求助

解决Google Gemini API在Android设备上的403 PERMISSION_DENIED问题

问题背景

使用以下Python代码调用Google Gemini接口时,桌面端运行正常,但在Android设备上抛出“403 PERMISSION_DENIED”错误,已尝试参考官方排查文档和更新generativeai库,问题仍未解决:

import google.generativeai as genai

# Create your views here.
# add here to your generated API key
genai.configure(api_key="*****")

def ask_question(request):
    if request.method == "POST":
        text = request.POST.get("text")
        try:
            model = genai.GenerativeModel("gemini-1.5-flash")
        except Exception as e:
           print(e)
        chat = model.start_chat()
        try:
            response = chat.send_message(text)
        except Exception as e:
           print(e)
        try:
            response = chat.send_message(text)
        except Exception as e:
           print(e)
        user = request.user
        ChatBot.objects.create(text_input=text, gemini_output=response.text, user=user)
        # Extract necessary data from response
        response_data = {
            "text": response.text,  # Assuming response.text contains the relevant response data
            # Add other relevant data from response if needed
        }
        return JsonResponse({"data": response_data})
    else:
        return JsonResponse({"data": 'I apologise but there is an issue'})

解决建议

  • 检查API密钥的访问限制:登录Google Cloud控制台,找到对应的API密钥,查看是否设置了IP白名单。如果只允许桌面IP访问,移动端动态IP不在列表内就会触发403。可以暂时取消IP限制测试,或者针对Android应用设置应用限制(绑定应用的SHA1指纹和包名)。
  • 排查Android设备网络问题:检查设备是否开启VPN、代理,这类工具可能改变请求IP导致被拦截;确认应用已申请INTERNET权限;如果用模拟器,验证模拟器网络是否正常连接。
  • 确认API区域与网络区域匹配:Gemini API部分区域存在访问限制,检查Google Cloud项目的API启用区域,同时切换Android设备的网络(比如从移动数据换WiFi)测试,排除区域限制导致的问题。
  • 修复代码中的重复请求:代码里连续两次调用chat.send_message(text),重复请求可能触发API的频率限制或异常拦截,删除其中一次重复的请求代码。
  • 捕获完整错误信息:当前仅打印异常对象,无法获取403的具体原因。修改异常捕获逻辑,打印完整错误详情:
    except Exception as e:
        print(f"错误详情: {str(e)}")
        if hasattr(e, 'response'):
            print(f"状态码: {e.response.status_code}")
            print(f"响应内容: {e.response.text}")
    
    根据详细信息能更精准定位问题(比如配额不足、密钥无效等)。
  • 核查API配额与计费状态:登录Google Cloud控制台,确认Gemini API的调用配额是否充足,同时检查项目是否存在欠费情况,欠费会导致API访问被限制。

内容的提问来源于stack exchange,提问作者Mohammed Baashar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 22:23:24