关联 Twitch 帐户
Links the Twitch account associated with the token to the user’s PlayFab account.
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| AccountNotFound | 1001 |
| FeatureNotConfiguredForTitle | 1177 |
| InvalidNamespaceMismatch | 1561 |
| InvalidTwitchToken | 1232 |
| LinkedAccountAlreadyClaimed | 1012 |
| LinkedIdentifierAlreadyClaimed | 1184 |
| TwitchResponseError | 1233 |
POST
/
Server
/
LinkTwitchAccount
Link Twitch Account
curl --request POST \
--url https://{titleId}.playfabapi.com/Server/LinkTwitchAccount \
--header 'Content-Type: application/json' \
--header 'X-SecretKey: <api-key>' \
--data '
{
"PlayFabId": "1234FA342",
"AccessToken": "twitch-access-token",
"ForceLink": false
}
'import requests
url = "https://{titleId}.playfabapi.com/Server/LinkTwitchAccount"
payload = {
"PlayFabId": "1234FA342",
"AccessToken": "twitch-access-token",
"ForceLink": False
}
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({PlayFabId: '1234FA342', AccessToken: 'twitch-access-token', ForceLink: false})
};
fetch('https://{titleId}.playfabapi.com/Server/LinkTwitchAccount', 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/LinkTwitchAccount",
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([
'PlayFabId' => '1234FA342',
'AccessToken' => 'twitch-access-token',
'ForceLink' => false
]),
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/LinkTwitchAccount"
payload := strings.NewReader("{\n \"PlayFabId\": \"1234FA342\",\n \"AccessToken\": \"twitch-access-token\",\n \"ForceLink\": false\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/LinkTwitchAccount")
.header("X-SecretKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"PlayFabId\": \"1234FA342\",\n \"AccessToken\": \"twitch-access-token\",\n \"ForceLink\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Server/LinkTwitchAccount")
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 \"PlayFabId\": \"1234FA342\",\n \"AccessToken\": \"twitch-access-token\",\n \"ForceLink\": false\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {}
}{
"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.
请求体
application/json
Twitch access token for authentication.
PlayFab unique identifier of the user to link.
The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
If another user is already linked to the account, unlink the other user and re-link.
最后修改于 2026年10月6日
此页面对您有帮助吗?
⌘I
Link Twitch Account
curl --request POST \
--url https://{titleId}.playfabapi.com/Server/LinkTwitchAccount \
--header 'Content-Type: application/json' \
--header 'X-SecretKey: <api-key>' \
--data '
{
"PlayFabId": "1234FA342",
"AccessToken": "twitch-access-token",
"ForceLink": false
}
'import requests
url = "https://{titleId}.playfabapi.com/Server/LinkTwitchAccount"
payload = {
"PlayFabId": "1234FA342",
"AccessToken": "twitch-access-token",
"ForceLink": False
}
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({PlayFabId: '1234FA342', AccessToken: 'twitch-access-token', ForceLink: false})
};
fetch('https://{titleId}.playfabapi.com/Server/LinkTwitchAccount', 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/LinkTwitchAccount",
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([
'PlayFabId' => '1234FA342',
'AccessToken' => 'twitch-access-token',
'ForceLink' => false
]),
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/LinkTwitchAccount"
payload := strings.NewReader("{\n \"PlayFabId\": \"1234FA342\",\n \"AccessToken\": \"twitch-access-token\",\n \"ForceLink\": false\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/LinkTwitchAccount")
.header("X-SecretKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"PlayFabId\": \"1234FA342\",\n \"AccessToken\": \"twitch-access-token\",\n \"ForceLink\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Server/LinkTwitchAccount")
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 \"PlayFabId\": \"1234FA342\",\n \"AccessToken\": \"twitch-access-token\",\n \"ForceLink\": false\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}