App Store Connect APIの叩き方
APIの叩き方概要
App Store Connect APIは App Store Connectの「ユーザーとアクセス」の「キー」から発行、DLしたキーをJWT(JSON Web Tokens)でアカウントを認証する。権限がない場合は「キー」タブは表示されない。
ちなみにこのキーは1度しかDLできない。
詳細:https://developer.apple.com/documentation/appstoreconnectapi/creating_api_keys_for_app_store_connect_api
以下、具体的手順
App Store Connect API
ユーザとアクセスからキーを発行する
発行できる権限を持ったアカウントで発行(現在は個人アカウントではリクエストするのみ)
JWTを使用してtokenを発行する処理を書く
作成するJWTには以下の内容が必要
・JWT header
・JWT payload
・JWTの署名
tokenを発行する
WWDCの動画にもあるrubyで記述
jwtがない場合は事前に入れる(https://qiita.com/oshou/items/6283c2315dc7dd244aef からの gem 'jwt'を追加+bundle install)
token.rb
require "base64"
require "jwt"
ISSUER_ID = ""
KEY_ID = ""
private_key = OpenSSL::PKey.read(File.read("p8ファイルのアドレス/hoge.p8"))
token = JWT.encode(
{
iss: ISSUER_ID,
exp: Time.now.to_i + 20 * 60,
aud: "appstoreconnect-v1"
},
private_key,
"ES256",
header_fields={
kid: KEY_ID }
)
puts token
ISSURE_ID, KEY_ID,p8ファイルのアドレスを入力する.
上記を実行するとtokenが発行できます
ruby token.rb
tokenの期限が切れるまでに叩く
curl https://api.appstoreconnect.apple.com/v1/apps -H "Authorization: Bearer 発行したトークン"
これで叩けます。
期限切れになると以下のように返ってくる。
{
"errors": [{
"status": "401",
"code": "NOT_AUTHORIZED",
"title": "Authentication credentials are missing or invalid.",
"detail": "Provide a properly configured and signed bearer token, and make sure that it has not expired. Learn more about Generating Tokens for API Requests https://developer.apple.com/go/?id=api-generating-tokens"
}]
}
現時点ではまだprovisioningなどができないため(404が返ってきてしまう)のでアップデートに期待
参考:
WWDC動画
https://developer.apple.com/videos/play/wwdc2018/303/ (後半のDEMOの部分が分かりやすいです
App Store Connect API
https://developer.apple.com/documentation/appstoreconnectapi
Author And Source
この問題について(App Store Connect APIの叩き方), 我々は、より多くの情報をここで見つけました https://qiita.com/tatetate55/items/b11867ec2f0375ca2d7c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .