TECH LAB

Adobe REST APIの使い方


実現したい内容

本記事ではAdobe APIを用いてAdobeグループのユーザー情報を確認する方法を紹介いたします。
Adobe APIは個人プランでは使用できず、グループ版、エンタープライズ版といった法人プランのみ使用可能です。法人プランではユーザーそれぞれに個別のライセンスを割り当てることが可能となります。

https://adobe--apiplatform-github-io.translate.goog/umapi-documentation/en/getstarted.html?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=ajax,se,elem,sc

結論

  • プロジェクトの作成
  • サービスアカウントの作成
  • アクセストークンの取得
  • APIを叩く

1.プロジェクトの作成

Adobe Developer Consoleにアクセスします。アクセス後、Create new projectをクリックします。

2.サービスアカウントの作成

プロジェクト画面で+Add to Projectをクリックし、APIを選択します。

利用したいAPIを選択します。今回はユーザーAPIを利用しますので、User Management APIを選択します。

Option 1を選択すると、右下のボタンがGenerate keypairという青いボタンに変わりますので、そちらをクリックします。

クリックするとconfig.zipというzipファイルがダウンロードされます。こちらに公開鍵/秘密鍵が入っています。

右下のSave configured APIをクリックします。

3.アクセストークンの取得

アクセストークンの取得には、Adobeの公式gitにて公開されているライブラリを使用します。

dotnet、Java、node、php、pythonのサンプルコードが存在します。

今回はphpのサンプルコードを用いて進めます。

https://github.com/AdobeDocs/adobeio-auth/tree/stage/JWT/samples/adobe-jwt-php

下記内容のパラメータを、それぞれのサービスアカウントの情報に合わせます。

AccessTokenProvider.php -i <client-id> -s <client-secret> -k <key-file> -u <issuer> -b <subject> -c <metascopes, comma separated> -e <exp time, default 1 Day>

<key-file>はダウンロードしたconfig.zipを解凍した中にあるprivate.keyのパスを記載してください。

<metascopes, comma separated>はAPIの権限スコープです。今回はユーザー管理APIを使用しますので、ent_user_sdkを指定します。

その他スコープは下記をご覧下さい。

https://github.com/AdobeDocs/adobeio-auth/blob/stage/JWT/Scopes.md

<exp time, default 1 Day>はトークンの有効期限となります。ここでは1 dayを指定します。

筆者の環境でそれぞれ置き換えたところ、下記のような形となりました。client-id等は隠してあります。

AccessTokenProvider.php -i"5d38...cbc" -s"p8e-J....k1X42MkdwvOFCKQ" -k"../../../../config/private.key" -u"085....01@AdobeOrg" -b"B46712506....C@techacct.adobe.com" -c"ent_user_sdk" -e"1 day"

上記phpをcliにて実行することにより、access_tokenを取得することができます。

4.APIを叩く

下記ページにユーザー管理APIのエンドポイントが記載されております。

https://adobe-apiplatform.github.io/umapi-documentation/en/api/getUser.html

今回はユーザー情報の取得のため、

GET /v2/usermanagement/organizations/{orgId}/users/{userString}

を使用します。

{orgId}は組織IDに置き換えてください。{userString}は取得したいユーザーのメールアドレスとなります。

headerとしてアクセストークンとclient-idを指定します。

3.アクセストークンの取得にて取得したトークンを

'Authorization: Bearer {token}'

の形で指定してください。

client-idに関しては、サービスアカウントのクライアントIDとなります。アクセストークンの取得の際に指定したclient-idと同様のものです。

client-idは

'X-Api-Key: {client-id}'

の形で指定してください。

筆者の環境で置き換えたコードが下記となります。トークン等は隠しております。

curl -X GET https://usermanagement.adobe.io/v2/usermanagement/organizations/xxxxxx@AdobeOrg/users/xxxxxx@xxxxxx.co.jp \
> --header 'Authorization: Bearer eyxxxxxxxxmFqZJWufSg1Xw' \
> --header 'X-Api-Key: 5d385fexxxxxxx62'

上記コードにて下記形式のjsonデータが取得できます。

{
"result":"success",
"user":{
"id":"xxxxxxxx",
"email":"xxxxxxxx.jp",
"status":"active",
"username":"xxxxxxxx.jp",
"adminRoles":["org"],
"domain":"xxxxxxxx.jp",
"firstname":"xxxxxxxxxx",
"lastname":"xxxxxxxx",
"country":"JP",
"type":"federatedID"
}
}

 

まとめ

今回はadobe rest apiにて、ユーザー情報を取得する方法を紹介いたしました。

その他、ユーザーにアプリのライセンスを付与するAPIや、ライセンスの付与状況を確認するAPI等が用意されておりますので、一度ご覧になってみてはいかがでしょうか。

Get notified on new marketing insights

Be the first to know about new B2B SaaS Marketing insights to build or refine your marketing function with the tools and knowledge of today’s industry.