LoginSignup
1
1

More than 3 years have passed since last update.

PlayFabでのプッシュ通知設定が難しすぎた

Posted at

UnityのバックエンドをPlayFabに任せてみようと試みていたのですが、iOSのプッシュ通知設定が難しすぎたので備忘録です。

pemファイルのアップロードができない

PlayFabのプッシュ通知設定手順については、公式や紹介ブログがあるので詳細は割愛しますが、pemファイルをアップロードする段階で以下のようなエラーが発生してしまいます。

Invalid parameter: Reason: cannot be empty

スクリーンショット 2020-06-04 1.54.16.png

pemの発行には問題無さそうで、まるでエラーの検討がつきません。

解決策

ぐぐってみると以下のフォーラムを発見。
https://community.playfab.com/questions/36895/instruction-on-using-admin-api-to-set-up-ios-push.html

一言で言うと、「管理画面のUIはバグってて使い物にならないから、AdminAPIを使え」とのことでした。

そしてこのAdmin API、pemファイルの中身をいい感じに整形してリクエストパラメータに乗っける、という癖の強い仕様になっています。

リクエストパラメータの設定方法

以下フォーラム記事を翻訳したリクエストパラメータの設定手順です。

  1. テキストエディタを使ってPEMファイルを開きます。2つの文字列のセクションがあり、1つは証明書、もう1つは秘密鍵です。

  2. 証明書のテキストを別の空のテキストファイルにコピーします。また、"-----BEGIN CERTIFICATE-----"と"-----END CERTIFICATE-----"のマーカーも必ずコピーしてください。そして、テキストエディタのreplaceメソッドを使って、すべての改行を「\n」に正確に変換して、1行の文字列にしてください。これはどのPlayFab公式ドキュメントにも記載されていません(えっ)

  3. 秘密鍵部分も同様に繰り返します。鍵のテキストの改行をすべて変換します。

  4. PlayFab APIを呼び出すことができる環境(Postman、.NET Coreのコンソールアプリ、またはUnityのEditorスクリプト)で、SetupPushNotificationを呼び出します。

5 リクエストの "Key "プロパティに証明書の文字列を設定します。

6 Credentialプロパティに秘密鍵の文字列を設定します。

APIのインタフェースは公式を参照。
https://docs.microsoft.com/ja-jp/rest/api/playfab/admin/title-wide-data-management/setuppushnotification?view=playfab-rest

分からなさすぎる

この人はどうやってこの解決策にたどり着けたのか謎です。すごい。。。
おかげで無事にiOSのプッシュ通知設定ができました。

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1