通过 OpenId 主体标识符获取 PlayFab ID
Retrieves the unique PlayFab identifiers for the given set of OpenId subject identifiers. A OpenId subject identifier is the OpenId issuer plus the OpenId subject for the player, as specified by the title when the OpenId identifier was added to the player account.
curl --request POST \
--url https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers \
--header 'Content-Type: application/json' \
--header 'X-SecretKey: <api-key>' \
--data '
{
"OpenIdSubjectIdentifiers": [
{
"Issuer": "https://example.com",
"Subject": "123456789012345678"
},
{
"Issuer": "https://example-2.com",
"Subject": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
}
]
}
'import requests
url = "https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers"
payload = { "OpenIdSubjectIdentifiers": [
{
"Issuer": "https://example.com",
"Subject": "123456789012345678"
},
{
"Issuer": "https://example-2.com",
"Subject": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
}
] }
headers = {
"X-SecretKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-SecretKey': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
OpenIdSubjectIdentifiers: [
{Issuer: 'https://example.com', Subject: '123456789012345678'},
{
Issuer: 'https://example-2.com',
Subject: 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
}
]
})
};
fetch('https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'OpenIdSubjectIdentifiers' => [
[
'Issuer' => 'https://example.com',
'Subject' => '123456789012345678'
],
[
'Issuer' => 'https://example-2.com',
'Subject' => 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-SecretKey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers"
payload := strings.NewReader("{\n \"OpenIdSubjectIdentifiers\": [\n {\n \"Issuer\": \"https://example.com\",\n \"Subject\": \"123456789012345678\"\n },\n {\n \"Issuer\": \"https://example-2.com\",\n \"Subject\": \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-SecretKey", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers")
.header("X-SecretKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"OpenIdSubjectIdentifiers\": [\n {\n \"Issuer\": \"https://example.com\",\n \"Subject\": \"123456789012345678\"\n },\n {\n \"Issuer\": \"https://example-2.com\",\n \"Subject\": \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-SecretKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"OpenIdSubjectIdentifiers\": [\n {\n \"Issuer\": \"https://example.com\",\n \"Subject\": \"123456789012345678\"\n },\n {\n \"Issuer\": \"https://example-2.com\",\n \"Subject\": \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"data": {
"Data": [
{
"OpenIdSubjectIdentifier": {
"Issuer": "https://example.com",
"Subject": "123456789012345678"
},
"PlayFabId": "ABCDEF0123456789"
},
{
"OpenIdSubjectIdentifier": {
"Issuer": "https://example-2.com",
"Subject": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
},
"PlayFabId": "1234567890ABCDEF"
}
]
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}授权
This API requires a title secret key, available to title admins, from PlayFab Game Manager.
请求体
Array of unique OpenId Connect identifiers for which the title needs to get PlayFab identifiers. The array cannot exceed 10 in length.
Show child attributes
Show child attributes
响应
For OpenId identifiers which have not been linked to PlayFab accounts, null will be returned.
The Http status code. If X-ReportErrorAsSuccess header is set to true, this will report the actual http error code.
The Http status code as a string.
For OpenId identifiers which have not been linked to PlayFab accounts, null will be returned.
Show child attributes
Show child attributes
{
"Data": [
{
"OpenIdSubjectIdentifier": {
"Issuer": "https://example.com",
"Subject": "123456789012345678"
},
"PlayFabId": "ABCDEF0123456789"
},
{
"OpenIdSubjectIdentifier": {
"Issuer": "https://example-2.com",
"Subject": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
},
"PlayFabId": "1234567890ABCDEF"
}
]
}
相关主题
通过 OpenId 主体标识符获取 PlayFab IDPFAccountManagementOpenIdSubjectIdentifierPFAccountManagementGetPlayFabIDsFromOpenIdsRequestPFAccountManagementOpenIdSubjectIdentifierPlayFabIdPair遥测密钥此页面对您有帮助吗?
curl --request POST \
--url https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers \
--header 'Content-Type: application/json' \
--header 'X-SecretKey: <api-key>' \
--data '
{
"OpenIdSubjectIdentifiers": [
{
"Issuer": "https://example.com",
"Subject": "123456789012345678"
},
{
"Issuer": "https://example-2.com",
"Subject": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
}
]
}
'import requests
url = "https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers"
payload = { "OpenIdSubjectIdentifiers": [
{
"Issuer": "https://example.com",
"Subject": "123456789012345678"
},
{
"Issuer": "https://example-2.com",
"Subject": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
}
] }
headers = {
"X-SecretKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-SecretKey': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
OpenIdSubjectIdentifiers: [
{Issuer: 'https://example.com', Subject: '123456789012345678'},
{
Issuer: 'https://example-2.com',
Subject: 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
}
]
})
};
fetch('https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'OpenIdSubjectIdentifiers' => [
[
'Issuer' => 'https://example.com',
'Subject' => '123456789012345678'
],
[
'Issuer' => 'https://example-2.com',
'Subject' => 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-SecretKey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers"
payload := strings.NewReader("{\n \"OpenIdSubjectIdentifiers\": [\n {\n \"Issuer\": \"https://example.com\",\n \"Subject\": \"123456789012345678\"\n },\n {\n \"Issuer\": \"https://example-2.com\",\n \"Subject\": \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-SecretKey", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers")
.header("X-SecretKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"OpenIdSubjectIdentifiers\": [\n {\n \"Issuer\": \"https://example.com\",\n \"Subject\": \"123456789012345678\"\n },\n {\n \"Issuer\": \"https://example-2.com\",\n \"Subject\": \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Server/GetPlayFabIDsFromOpenIdSubjectIdentifiers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-SecretKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"OpenIdSubjectIdentifiers\": [\n {\n \"Issuer\": \"https://example.com\",\n \"Subject\": \"123456789012345678\"\n },\n {\n \"Issuer\": \"https://example-2.com\",\n \"Subject\": \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"data": {
"Data": [
{
"OpenIdSubjectIdentifier": {
"Issuer": "https://example.com",
"Subject": "123456789012345678"
},
"PlayFabId": "ABCDEF0123456789"
},
{
"OpenIdSubjectIdentifier": {
"Issuer": "https://example-2.com",
"Subject": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
},
"PlayFabId": "1234567890ABCDEF"
}
]
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}