在调用“SignIn With Apple”的API时,需要将客户端ID和秘钥请求到苹果服务器获取授权访问令牌。若出现“invalid_client”错误,有可能是由于客户端ID或秘钥不正确所致。
在代码中,可能需要更改苹果授权服务器请求地址,并检查所提供的客户端ID和秘钥是否正确。以下是一个示例代码片段,用于检查苹果授权服务器响应并获取访问令牌:
var uriBuilder = new UriBuilder("https://appleid.apple.com/auth/token");
var parameters = new Dictionary
using (var httpClient = new HttpClient()) { var content = new FormUrlEncodedContent(parameters); var response = await httpClient.PostAsync(uriBuilder.Uri, content);
if (response.IsSuccessStatusCode)
{
var json = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject(json);
return result.AccessToken;
}
else
{
var errorMessage = await response.Content.ReadAsStringAsync();
throw new Exception($"Error requesting Apple's servers for an access token: {errorMessage}");
}
}
若客户端ID和秘钥正确,但仍无法正常获得访问令牌,则可能是由于Apple授权服务器故障所致。此时,需等待苹果服务器恢复正常后再试一次即可。