网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

Google Play

2026-03-25 新闻来源:网淘吧 围观:60
电脑广告
手机广告

Google Play

通过托管的 OAuth 认证访问 Google Play Developer API(Android Publisher)。管理应用列表、订阅、应用内购买、评论等。

快速开始

# 列出应用内商品
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/google-play/androidpublisher/v3/applications/{packageName}/inappproducts')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

基础URL

https://gateway.maton.ai/google-play/{原生API路径}

{原生API路径}替换为实际的 Android Publisher API 端点路径。网关将请求代理到androidpublisher.googleapis.com并自动注入您的 OAuth 令牌。

认证

所有请求都要求在 Authorization 请求头中包含 Maton API 密钥:

Authorization: Bearer $MATON_API_KEY

环境变量:将您的 API 密钥设置为MATON_API_KEY

export MATON_API_KEY="您的API密钥"

获取您的API密钥

  1. 登录或创建一个账户,访问maton.ai
  2. 前往maton.ai/settings
  3. 复制您的API密钥

连接管理

管理您的Google OAuth连接,请访问https://ctrl.maton.ai

列出连接

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=google-play&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

创建连接

python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'google-play'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

获取连接

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

响应:

{
  "connection": {
    "connection_id": "21fd90f9-5935-43cd-b6c8-bde9d915ca80",
    "status": "ACTIVE",
    "creation_time": "2025-12-08T07:20:53.488460Z",
    "last_updated_time": "2026-01-31T20:03:32.593153Z",
    "url": "https://connect.maton.ai/?session_token=...",
    "app": "google-play",
    "metadata": {}
  }
}

打开返回的url在浏览器中完成OAuth授权。

删除连接

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

指定连接

如果您有多个Google Play连接,请使用Maton-Connection请求头来指定要使用哪个连接:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/google-play/androidpublisher/v3/applications/{packageName}/inappproducts')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', '21fd90f9-5935-43cd-b6c8-bde9d915ca80')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

如果省略,网关将使用默认的(最早创建的)活跃连接。

API参考

应用内商品

列出应用内商品

GET /google-play/androidpublisher/v3/applications/{packageName}/inappproducts

获取应用内商品

GET /google-play/androidpublisher/v3/applications/{packageName}/inappproducts/{sku}

创建应用内商品

POST /google-play/androidpublisher/v3/applications/{packageName}/inappproducts
Content-Type: application/json

{
  "packageName": "com.example.app",
  "sku": "premium_upgrade",
  "status": "active",
  "purchaseType": "managedUser",
  "defaultPrice": {
    "priceMicros": "990000",
    "currency": "USD"
  },
  "listings": {
    "en-US": {
      "title": "Premium Upgrade",
      "description": "Unlock all premium features"
    }
  }
}

更新应用内商品

PUT /google-play/androidpublisher/v3/applications/{packageName}/inappproducts/{sku}
Content-Type: application/json

{
  "packageName": "com.example.app",
  "sku": "premium_upgrade",
  "status": "active",
  "purchaseType": "managedUser",
  "defaultPrice": {
    "priceMicros": "1990000",
    "currency": "USD"
  }
}

删除应用内商品

DELETE /google-play/androidpublisher/v3/applications/{packageName}/inappproducts/{sku}

订阅

列出订阅

GET /google-play/androidpublisher/v3/applications/{packageName}/subscriptions

获取订阅

GET /google-play/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}

创建订阅

POST /google-play/androidpublisher/v3/applications/{packageName}/subscriptions
Content-Type: application/json

{
  "productId": "monthly_premium",
  "basePlans": [
    {
      "basePlanId": "p1m",
      "autoRenewingBasePlanType": {
        "billingPeriodDuration": "P1M"
      }
    }
  ],
  "listings": [
    {
      "languageCode": "en-US",
      "title": "Premium Monthly"
    }
  ]
}

购买

获取购买信息(一次性产品)

GET /google-play/androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}

确认购买

POST /google-play/androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:acknowledge
Content-Type: application/json

{
  "developerPayload": "optional payload"
}

获取订阅购买信息

GET /google-play/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}

取消订阅

POST /google-play/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel

退款订阅

POST /google-play/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:refund

评价

列出评论

GET /google-play/androidpublisher/v3/applications/{packageName}/reviews

获取单个评论

GET /google-play/androidpublisher/v3/applications/{packageName}/reviews/{reviewId}

回复评论

POST /google-play/androidpublisher/v3/applications/{packageName}/reviews/{reviewId}:reply
Content-Type: application/json

{
  "replyText": "感谢您的反馈!"
}

编辑(应用更新)

创建编辑

POST /google-play/androidpublisher/v3/applications/{packageName}/edits

获取编辑

GET /google-play/androidpublisher/v3/applications/{packageName}/edits/{editId}

提交编辑

POST /google-play/androidpublisher/v3/applications/{packageName}/edits/{editId}:commit

删除编辑

DELETE /google-play/androidpublisher/v3/applications/{packageName}/edits/{editId}

代码示例

JavaScript

// 列出应用内商品
const packageName = 'com.example.app';
const response = await fetch(
  `https://gateway.maton.ai/google-play/androidpublisher/v3/applications/${packageName}/inappproducts`,
  {
    headers: {
      'Authorization': `Bearer ${process.env.MATON_API_KEY}`
    }
  }
);

const products = await response.json();
console.log(products);

Python

import os
import requests

headers = {'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'}
package_name = 'com.example.app'

# 列出应用内商品
response = requests.get(
    f'https://gateway.maton.ai/google-play/androidpublisher/v3/applications/{package_name}/inappproducts',
    headers=headers
)
products = response.json()
print(products)

备注

  • 替换{packageName}为你的应用包名(例如:com.example.app
  • Google Play开发者API要求应用已在Google Play上架
  • 订阅管理要求应用已配置有效的订阅项目
  • 编辑操作具有事务性——需先创建编辑会话,进行修改,然后提交
  • 重要提示:使用curl命令时,若URL包含方括号(fields[]sort[]records[]),请使用curl -g以禁用通配符解析
  • 重要提示:当通过管道将curl输出传递给jq或其他命令中,环境变量如$MATON_API_KEY在某些shell环境中可能无法正确展开。通过管道传递时,您可能会遇到"无效API密钥"的错误。

错误处理

状态码含义
400缺少Google Play连接
401Maton API密钥无效或缺失
404未找到软件包或无权访问
429请求频率受限(每个账户每秒10次请求)
4xx/5xx来自Google Play API的透传错误

故障排除:API密钥问题

  1. 请检查MATON_API_KEY环境变量是否已设置:
echo $MATON_API_KEY
  1. 通过列出连接来验证API密钥是否有效:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

故障排除:应用名称无效

  1. 请确保您的URL路径以google-play开头。例如:
  • 正确示例:https://gateway.maton.ai/google-play/androidpublisher/v3/applications/{packageName}/inappproducts
  • 错误示例:https://gateway.maton.ai/androidpublisher/v3/applications/{packageName}/inappproducts

资源

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Security Auditor 下一篇:Opencode-controller

相关文章

您是本站第236397名访客 今日有38篇新文章/评论