記事

App Store Connect API|Customer Reviews 管理を強化:In-app purchases・Subscriptionsも対応

開発者向けにApp Store Connect API 2.0+がCustomer Reviewsの読み取り・管理を実現。In-app purchasesやSubscriptionsも統合し、レビュー対応の効率化と収益最大化をサポートします。

App Store Connect API|Customer Reviews 管理を強化:In-app purchases・Subscriptionsも対応

本記事は AI による翻訳をもとに作成されています。表現が不自然な箇所がありましたら、ぜひコメントでお知らせください。

記事一覧


App Store Connect API は現在、カスタマーレビューの読み取りと管理をサポートしています

App Store Connect API 2.0+ 完全アップデート、In-app purchases、Subscriptions、Customer Reviews 管理をサポート

2022/07/19 ニュース

[XMLフィードからApp Store Connect APIへの移行予定](https://developer.apple.com/news/?id=yqf4kgwb){:target="_blank"}

XMLフィードからApp Store Connect APIへの移行予定

今朝、Apple 開発者最新情報 を受け取りました。App Store Connect API に In-app purchases、Subscriptions、Customer Reviews 管理の3つの新機能が追加されました。これにより、開発者は Apple の開発プロセスを CI/CD やビジネスバックエンドとより柔軟かつ効率的に統合できるようになります!

In-app purchases、Subscriptions は触っていませんが、Customer Reviews には非常に興奮しています。以前、「AppStore APP’s Reviews Slack Bot について」という記事で、Appのレビューとワークフロー統合の方法について取り上げました。

Slack レビュー ロボット — [ZReviewsBot](https://github.com/ZhgChgLi/ZReviewsBot){:target="_blank"}

Slack 評価ボット — ZReviewsBot

App Store Connect API がサポートされる前は、iOSアプリのレビューを取得する方法は2つしかありませんでした:

一つ目は サブスクリプションによる Public RSS の取得ですが、このRSSは柔軟なフィルタリングができず、提供される情報も少なく、数の上限があり、時折データの乱れが発生するため非常に不安定です。

二 は Fastlane SpaceShip を使って複雑なウェブ操作やセッション管理をラップし、App Store Connect の管理画面からレビュー情報を取得します(ウェブブラウザのエミュレーターでスクレイピングするようなものです)。

  • 利点はデータが完全かつ安定していることで、私たちは1年間連携して一切のデータ問題に遭遇していません。

  • 欠点は、セッションが毎月期限切れになり、手動で再ログインが必要なことです。また、Apple IDは現在すべて2FA認証が必須なので、この作業も手動で行わなければなりません。そうしないと有効なセッションを生成できません。さらに、セッションは生成したIPと異なるIPで使用するとすぐに期限切れになるため(そのため、固定IPでないネットワークサービスにロボットを配置するのは難しいです)。

[Fastlaneによるセッション継続時間に関する重要な注意事項](https://docs.fastlane.tools/best-practices/continuous-integration/#important-note-about-session-duration){:target="_blank"}

important-note-about-session-duration by Fastlane

  • 毎月不定期に期限切れとなり、そのたびに更新が必要で、長期間続くと非常に面倒です;さらにこの「Know How」は実際に他の同僚に引き継ぐのが難しいです。

しかし、他に方法がなかったため、今朝までこのままでした…。

⚠️ 注意:Appleは2022年11月に従来のXML(RSS)アクセス方式を廃止する予定です。

2022/08/10 更新

私は新しい App Store Connect API を基にして、新しい「ZReviewTender — 無料オープンソースのアプリレビュー監視ロボット」を開発しました。

App Store Connect API 2.0+ カスタマーレビュー 試用

App Store Connect API キーの作成

まずは App Store Connect の管理画面にログインし、「Users and Access」->「Keys」->「 App Store Connect API 」へ進みます:

「+」をクリックし、名前と権限を入力します。権限の詳細は公式サイトの説明を参照してください。テストの問題を減らすため、ここではまず「App Manager」を選択して最大の権限を付与します。

右側の「Download API Key」をクリックして、「AuthKey_XXX.p8」キーを保存してください。

⚠️ 注意:このキーは一度しかダウンロードできませんので、大切に保管してください。紛失した場合は既存のキーを取り消して再作成する必要があります。⚠️

⚠️ .p8 キーファイルを絶対に漏らさないでください⚠️

App Store Connect API アクセス方法

1
curl -v -H 'Authorization: Bearer [signed token]' "https://api.appstoreconnect.apple.com/v1/apps"

Signed Token (JWT, JSON Web Token) の生成方法

参考 公式ドキュメント

  • JWT ヘッダー:
1
{kid:"YOUR_KEY_ID", typ:"JWT", alg:"ES256"}

YOUR_KEY_ID :上の図を参照してください。

  • JWT ペイロード:
1
2
3
4
5
6
{
  iss: 'YOUR_ISSUE_ID',
  iat: TOKEN 作成時間 (UNIX TIMESTAMP 例: 1658326020),
  exp: TOKEN 有効期限 (UNIX TIMESTAMP 例: 1658327220),
  aud: 'appstoreconnect-v1'
}

YOUR_ISSUE_ID :上の図を参照してください。

exp TOKEN 有効期限 :アクセス機能や設定によって有効期限が異なります。永久の場合もあれば、20分以上経過すると無効になり再生成が必要な場合もあります。詳細は公式説明をご参照ください。

JWT.IO または以下の Ruby サンプルを使用して JWT を生成する

jwt.rb:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
require 'jwt'
require 'time'

keyFile = File.read('./AuthKey_XXXX.p8') # あなたの.p8秘密鍵ファイルのパス
privateKey = OpenSSL::PKey::EC.new(keyFile)

payload = {
            iss: 'YOUR_ISSUE_ID',
            iat: Time.now.to_i,
            exp: Time.now.to_i + 60*20,
            aud: 'appstoreconnect-v1'
          }

token = JWT.encode payload, privateKey, 'ES256', header_fields={kid:"YOUR_KEY_ID", typ:"JWT"}
puts token


decoded_token = JWT.decode token, privateKey, true, { algorithm: 'ES256' }
puts decoded_token

最終的に以下のような JWT 結果が得られます:

1
4oxjoi8j69rHQ58KqPtrFABBWHX2QH7iGFyjkc5q6AJZrKA3AcZcCFoFMTMHpM.pojTEWQufMTvfZUW1nKz66p3emsy2v5QseJX5UJmfRjpxfjgELUGJraEVtX7tVg6aicmJT96q0snP034MhfgoZAB46MGdtC6kv2Vj6VeL2geuXG87Ys6ADijhT7mfHUcbmLPJPNZNuMttcc.fuFAJZNijRHnCA2BRqq7RZEJBB7TLsm1n4WM1cW0yo67KZp-Bnwx9y45cmH82QPAgKcG-y1UhRUrxybi5b9iNN

試してみる?

Token があれば、さっそく App Store Connect API を試してみましょう!

1
curl -H 'Authorization: Bearer JWT' "https://api.appstoreconnect.apple.com/v1/apps/APPID/customerReviews"
  • APPID は App Store Connect の管理画面から取得できます:

または App ストアのページ:

  • 成功!🚀 私たちは今、この方法でアプリのレビューを取得できます。データは完全で、すべて自動化できるため、手動での定期メンテナンスは不要です(JWTは期限切れになりますが、プライベートキーは失効しません。リクエストごとにプライベートキーで署名してJWTを生成し、アクセスすればよいのです)。

  • その他のフィルターパラメータや操作方法については、公式ドキュメント を参照してください。

⚠️ あなたが権限を持つアプリのレビューのみアクセス可能です ⚠️

完全な Ruby テストプロジェクト

Ruby ファイル一つで上記の手順を実装しており、そのままクローンして必要な情報を入力するだけでテストが可能です。

初回起動:

1
bundle install

使用開始:

1
bundle exec ruby jwt.rb

次へ

同様に、API を通じて管理にアクセスできます ( API Overview ):

ご質問やご意見がございましたら、こちらからご連絡ください

Post MediumからZMediumToMarkdownによって変換されました。


🍺 Buy me a beer on PayPal

👉👉👉 Follow Me On Medium! (1,053+ Followers) 👈👈👈

本記事は Medium にて初公開されました(こちらからオリジナル版を確認)。ZMediumToMarkdown による自動変換・同期技術を使用しています。

Improve this page on Github.

本記事は著者により CC BY 4.0 に基づき公開されています。