ユーザー情報のクエリ
接続アプリケーションは、UserInfo エンドポイントで接続アプリケーションのアクセストークンに関連付けられたユーザーに関する情報を照会できます。Salesforce は、ユーザーに関する基本的な個人情報と、接続アプリケーションが通信できる重要なエンドポイント (写真、アクセス可能な API エンドポイントなど) を返します。UserInfo エンドポイントは、現在のユーザーに対してのみ、情報へのアクセスを提供します。組織の他のユーザーへのアクセスは提供しません。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic および Lightning Experience の両方 |
| 使用可能なエディション: すべてのエディション |
UserInfo エンドポイントは、OpenID Connect によって定義された RESTful API です。エンドポイントの URL の形式は https://login.salesforce.com/services/oauth2/userinfo です。
UserInfo エンドポイントを照会するためのフローを示します。
- 接続アプリケーションは、Salesforce UserInfo エンドポイントにクエリを送信します。クエリには接続アプリケーションのアクセストークンが含まれている必要があります。
- Salesforce はユーザー情報で応答します。
UserInfo エンドポイントの照会
次のパラメーターを使用して UserInfo エンドポイントを照会します。アクセストークンは、認証要求ヘッダー、または oauth_token パラメーターのある要求で使用できます。
Salesforce UserInfo エンドポイントの応答
有効な要求を作成したら、JSON 形式 (デフォルト) または format パラメーターで指定した形式で情報が返されます。
応答には、「OpenID Connect Basic Client Profile」に含まれる値、Salesforce ユーザー ID、組織 ID、フィード、およびプロファイルの URL が含まれます。
応答の email_verified 属性には、たとえば Salesforce システム管理者が Roberta Smith というユーザーを作成した場合など、このシナリオが発生した後にユーザーがメールを検証するかどうかが反映されます。Roberta は、アカウントを確認するためのリンクが含まれる「Salesforce へようこそ」のメールメッセージを受信します。リンクをクリックすると、email_verified 値が true に設定されます。
- ユーザーがメールアドレスを変更した
- ユーザーがパスワードを変更したか、Salesforce システム管理者がパスワードをリセットした
- ユーザーが新しいブラウザーまたはデバイスからのログイン時に ID を検証した
- Salesforce システム管理者がユーザーを新しいユーザーとして作成した
JSON 形式の応答は、次のとおりです。
{"sub":"https://login.salesforce.com/id/00Dx000.../005x000...",
"user_id":"005x000...",
"organization_id":"00Dx000...",
"name":"yourInstance LastName",
"email":"user1@1135222488950007.com",
"email_verified":true,"given_name":"yourInstance","family_name":"LastName",
"zoneinfo":"America/Los_Angeles",
"photos":{"picture":"https://yourInstance.salesforce.com/profilephoto/005/F","thumbnail":"https://yourInstance.salesforce.com/profilephoto/005/T"},
"profile":"https://yourInstance.salesforce.com/005x000...",
"picture":"https://yourInstance.salesforce.com/profilephoto/005/F",
"address":{"country":"us"},
"urls":{"enterprise":"https://yourInstance.salesforce.com/services/Soap/c/{version}/00Dx00...",
"partner":"https://yourInstance.salesforce.com/services/Soap/u/{version}/00Dx00...",
"rest":"https://yourInstance.salesforce.com/services/data/v{version}/",
"sobjects":"https://yourInstance.salesforce.com/services/data/v{version}/sobjects/",
"search":"https://yourInstance.salesforce.com/services/data/v{version}/search/",
"query":"https://yourInstance.salesforce.com/services/data/v{version}/query/",
"recent":"https://yourInstance.salesforce.com/services/data/v{version}/recent/",
"profile":"https://yourInstance.salesforce.com/005x000...",
"feeds":"https://yourInstance.salesforce.com/services/data/v{version}/chatter/feeds",
"groups":"https://yourInstance.salesforce.com/services/data/v{version}/chatter/groups",
"users":"https://yourInstance.salesforce.com/services/data/v{version}/chatter/users",
"feed_items":"https://yourInstance.salesforce.com/services/data/v{version}/chatter/feed-items"},
"active":true,"user_type":"STANDARD","language":"en_US","locale":"en_US",
"utcOffset":-28800000,"updated_at":"2013-12-02T18:46:42Z"}XML 形式の応答は、次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<user>
<sub>https://login.salesforce.com/id/00Dx000.../005x000...</sub>
<user_id>005x000...</user_id>
<organization_id>00Dx000...</organization_id>
<preferred_username>user1@1135222488950007.com</preferred_username>
<nickname>user1.3860098879512678E12</nickname>
<name>user1 LastName</name>
<email>user1@1135222488950007.com</email>
<email_verified>true</email_verified>
<given_name>user1</given_name>
<family_name>LastName</family_name>
<zoneinfo>America/Los_Angeles</zoneinfo>
<photos>
<picture>https://yourInstance.salesforce.com/profilephoto/005/F</picture>
<thumbnail>https://yourInstance.salesforce.com/profilephoto/005/T</thumbnail></photos>
<profile>https://yourInstance.salesforce.com/005x000...</profile>
<picture>https://yourInstance.salesforce.com/profilephoto/005/F</picture>
<address>
<country>us</country>
</address>
<urls>
<enterprise>https://yourInstance.salesforce.com/services/Soap/c/{version}/00Dx0000002rIh1</enterprise>
<metadata>https://yourInstance.salesforce.com/services/Soap/m/{version}/00Dx0000002rIh1</metadata>
<partner>https://yourInstance.salesforce.com/services/Soap/u/{version}/00Dx0000002rIh1</partner>
<rest>https://yourInstance.salesforce.com/services/data/v{version}/</rest>
<sobjects>https://yourInstance.salesforce.com/services/data/v{version}/sobjects/</sobjects>
<search>https://yourInstance.salesforce.com/services/data/v{version}/search/</search>
<query>https://yourInstance.salesforce.com/services/data/v{version}/query/</query>
<recent>https://yourInstance.salesforce.com/services/data/v{version}/recent/</recent>
<profile>https://yourInstance.salesforce.com/005x000...</profile>
<feeds>https://yourInstance.salesforce.com/services/data/v{version}/chatter/feeds</feeds>
<groups>https://yourInstance.salesforce.com/services/data/v{version}/chatter/groups</groups>
<users>https://yourInstance.salesforce.com/services/data/v{version}/chatter/users</users>
<feed_items>https://yourInstance.salesforce.com/services/data/v{version}/chatter/feed-items</feed_items>
</urls>
<active>true</active>
<user_type>STANDARD</user_type>
<language>en_US</language>
<locale>en_US</locale>
<utcOffset>-28800000</utcOffset>
<updated_at>2013-12-02T18:46:42.000Z</updated_at>
</user>返されるパラメーターについて次の表で説明します。
無効な要求には Salesforce から次のような応答が返されます。
| エラーコード | 要求の問題 |
|---|---|
| 403 (forbidden) — HTTPS_Required | HTTP |
| 403 (forbidden) — Missing_OAuth_Token | アクセストークンがない |
| 403 (forbidden) — Bad_OAuth_Token | アクセストークンが無効 |
| 403 (forbidden) — Wrong_Org | 異なる組織のユーザー |
| 404 (not found) — Bad_Id | ユーザー ID または組織 ID が無効または間違っている |
| 404 (not found) — Inactive | 無効になったユーザーまたは無効な組織 |
| 404 (not found) — No_Access | ユーザーに組織または情報への適切なアクセス権がない |
| 404 (not found) — No_Site_Endpoint | サイトの無効なエンドポイントへの要求 |
| 404 (not found) — Internal Error | サーバーから応答がない |
| 406 (not acceptable) — Invalid_Version | 無効なバージョン |
| 406 (not acceptable) — Invalid_Callback | 無効なコールバック |

