ビジネス管理APIを使うと、WhatsApp Businessアカウントやメッセージテンプレートなど、WhatsApp関連のビジネスアセットを作成および管理することができます。このAPIはマーケティングAPI上に構築されており、そのエンドポイントの一部を利用するため、このドキュメントには該当するマーケティングAPIドキュメントへのリンクが含まれている場合があります。
プラットフォームでは以下のアクセストークンのタイプがサポートされています。使用するタイプは、アプリケーションの利用者によって、またソリューションプロバイダーであるかどうかによって異なります。
システムユーザーアクセストークンは、あなた、あなたのビジネスや組織、またはあなたのビジネスや組織に属する人を表します。これらのトークンの主な利点は、期限切れになることがなく、ビジネス内でユーザーのインプットを必要としない自動化サービスを表示できることです。
システムユーザーアクセストークンは、ソリューションパートナーがオンボーディングされた顧客とクレジットラインを共有するために使用できる唯一のトークンタイプです。
システムユーザーアクセストークンを生成するには、まずシステムユーザーを作成する必要があります。ほとんどのエンドポイントは、トークンで特定されたユーザーがクエリ対象のリソースにアクセスできるかどうかをチェックします。ユーザーがリソースにアクセスできない場合、エラーコード200
が返され、リクエストが却下されます。
社員システムユーザーには、当該のMetaビジネスが所有しているまたは共有を受けている個々のWhatsApp Businessアカウントへのアクセス権を付与する必要があります。所有しているWhatsApp Businessアカウントにのみアプリがアクセスする必要がある場合は、社員システムユーザーのアクセス権で十分です。
作成したら、そのシステムユーザーがアクセスする必要がある各WhatsApp Businessアカウントへのフルまたは部分的なアクセス許可を付与する必要があります。
デフォルトでは、管理者システムユーザーは、あなたやあなたのビジネスが所有している、または共有を受けているすべてのWhatsApp Businessアカウントとアセットにフルアクセスできます。
管理者システムユーザーは、アプリがあなたのビジネスに新しく共有されたWhatsApp Businessアカウントにアクセスする必要がある場合に便利です。社員システムユーザーを使用している場合は、共有を受けた各WhatsApp Businessアカウントへのアクセス許可を手動で付与する必要があります。
WhatsApp Businessアカウントごとに部分的なアクセス許可を付与することによって、管理者システムユーザーのデフォルトアクセスを上書きすることができます。
システムユーザーを作成する手順は、次のとおりです。
システムユーザーの作成後にシステムユーザーアクセストークンを生成する手順は、次のとおりです。
ビジネス連携システムユーザーアクセストークンの対象範囲はオンボーディングされた個々の顧客であり、技術提供者やソリューションパートナーが、オンボーディングされた顧客のデータにアクセスする際に使用します。
これらは、顧客のWhatsAppビジネスアカウントでプログラムによる自動アクションを実行するアプリに便利なトークンです。アプリユーザーの入力に頼ることも、今後再認証が必要になることもありません。
ビジネス連携システムユーザーアクセストークンを生成するには、ビジネス向けFacebookログインで設定された埋め込み登録を実装し、顧客がフローを完了したときに返されるコードを交換する必要があります。
これらのトークンと生成方法について詳しくは、埋め込み登録のドキュメントとビジネス連携システムユーザーアクセストークンのドキュメントをご覧ください。
ユーザーアクセストークンはすべてのアプリ開発者が使用できるようサポートされています。しかし、このトークンは往々にして、初めてアプリダッシュボードを使って最初のテストメッセージを送信するときしか利用できません。ただし、アプリを開発中にシステムユーザーアクセストークン(技術提供者またはソリューションプロバイダーである場合、最終的にビジネスシステムユーザーアクセストークンに)切り替わります。ユーザーアクセストークンはすぐに期限切れになり、数時間ごとに新しいものを作成し続ける必要があるためです。
ユーザーアクセストークンを生成する方法はいくつかあります。
APIリクエストを行うときは、Bearer
で始まる認証リクエストヘッダーにトークンを含めてください。例えば、次のようにします。
curl 'https://graph.facebook.com/v18.0/102290129340398/message_templates' \ -H 'Authorization: Bearer EAAJB...' \
多くのエンドポイントでは、APIリクエストに含められたトークンのユーザーにも、クエリ対象のWhatsApp Businessアカウント(またはそのアセット)への部分的またはフルアクセス許可が付与されていなければなりません。ユーザーがアクセスできない場合、APIはエラーコード200を返します。
詳細なアクセス許可は、システムユーザーを含めどのユーザーにも設定できます。あるユーザーグループの特定のアセットへのアクセスを制限したい場合は、システムユーザーに詳細なアクセス許可を設定すると便利です。例えば、大規模なビジネスを所有していて、特定の部門にはWhatsApp Businessアカウントのテンプレートとビジネス電話番号のデータへの読み取りアクセスのみを許可したい場合は、その部門のシステムユーザーを作成し、閲覧専用アクセスを設定することができます。
WhatsApp Businessアカウントやそのアセットに対するユーザーアクセスを指定するには、次のようにします。
エンドポイントのテストには、PostmanコレクションかcURLを使うことをおすすめします。グラフAPIエクスプローラツールも使えますが、トークンがクエリー文字列パラメーターとして渡されるため、利用はおすすめしません(代わりに、リクエストヘッダーでトークンを渡してください)。
ビジネスに関する情報を入手するには、GET
リクエストをWhatsAppBusinessAccount
エンドポイントに送信します。ここで、<WHATSAPP_BUSINESS_ACCOUNT_ID>
は、お持ちのWhatsApp BusinessアカウントIDにします。
curl -i -X GET 'https://graph.facebook.com/v19.0
/<WHATSAPP_BUSINESS_ACCOUNT_ID>' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'
{ "id": "<WHATSAPP_BUSINESS_ACCOUNT_ID>", "name": "Your WhatsApp Business Account Name", "timezone_id": "1", "message_template_namespace": "05155c78_261e_4b2f_82b3_d7958d4cf75f" }
ビジネスの特定の情報(名称、メッセージテンプレート、電話番号など)を入手するには、GET
リクエストをWhatsAppBusinessAccount
エンドポイントに送ります。ここで、<WHATSAPP_BUSINESS_ACCOUNT_ID>
にはお持ちのWhatsApp BusinessアカウントIDを、fields
パラメーターには戻り値を希望する項目のリストを設定します。
curl -i -X GET 'https://graph.facebook.com/v19.0
/<WHATSAPP_BUSINESS_ACCOUNT_ID>?fields=id,name,message_templates,phone_numbers' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'
{ "id": "<WHATSAPP_BUSINESS_ACCOUNT_ID>", "name": "Your WhatsApp Business Account Name", "message_templates": { "data": [ { "name": "hello_world", "components": [ { "type": "HEADER", "format": "TEXT", "text": "Hello World" }, { "type": "BODY", "text": "Welcome and congratulations!! This message demonstrates your ability to send a message notification from WhatsApp Business Platform. Thank you for taking the time to test with us." }, { "type": "FOOTER", "text": "WhatsApp Business Team" } ], "language": "en_US", "status": "APPROVED", "category": "ACCOUNT_UPDATE", "id": "307191531401674" }, { "name": "sample_flight_confirmation", "components": [ { "type": "HEADER", "format": "DOCUMENT" }, { "type": "BODY", "text": "Confirmamos tu vuelo a {{1}}-{{2}} para el {{3}}." }, { "type": "FOOTER", "text": "Este mensaje proviene de un negocio no verificado." } ], "language": "es", "status": "APPROVED", "category": "TICKET_UPDATE", }, ...
呼び出しのタイプ | エンドポイント |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
呼び出しのタイプ | エンドポイント |
---|---|
|
|
|
|
|
|
|
|