【问题标题】:AppStore connect API 401 ERROR, while using Firebase\JWTAppStore 连接 API 401 错误,同时使用 Firebase\JWT
【发布时间】:2021-03-11 22:28:37
【问题描述】:

我正在尝试从 AppleStore 连接 API 获取报告和数据,但它一直给我 401 错误。

{“错误”:[{“状态”:“401”,“代码”:“NOT_AUTHORIZED”,“标题”: “身份验证凭据丢失或无效。”,“详细信息”: “提供正确配置和签名的不记名令牌,并确保 它还没有过期。了解有关为 API 生成令牌的更多信息 请求 https://developer.apple.com/go/?id=api-generating-tokens" }] }

我使用此处的指南 => generating_tokens_for_api_requests 并使用 firebase/php-jwt 库为 Auth 创建 jwt 令牌。在App store connect中,key有Developer的访问权限。

我的示例代码如下:

date_default_timezone_set("Europe/Madrid");
use \Firebase\JWT\JWT;

$appleCon = [
    'privateKey' => "" . file_get_contents(__DIR__ . '/AuthKey_XXXXXXXXX.p8'),
    'apiKeyID' => 'XXXXXXXXX',
    'issuerID' => 'XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX'
];

$payload = array(
    "iss" => $appleCon['issuerID'],
    "exp" => time() + 1200,
    "aud" => "appstoreconnect-v1",
);

$jwt = JWT::encode($payload, $appleCon['privateKey'], "ES256", $appleCon['apiKeyID']);

$client = new GuzzleHttp\Client(['base_uri' => 'https://api.appstoreconnect.apple.com/v1/']);
$request = new \GuzzleHttp\Psr7\Request('GET', 'apps', [
    'headers' => [
        'Authorization' => "Bearer ".$jwt
    ]
]);

$promise = $client->sendAsync($request)->then(function ($response) {
    echo 'I completed! ' . $response->getBody();
});

try {
    $promise->wait();
}
catch (GuzzleHttp\Exception\ClientException $e) {
    $response = $e->getResponse();
    $responseBodyAsString = $response->getBody()->getContents();

    echo $responseBodyAsString;
}

AuthKey_XXXXXXXXX.p8文件内容如下:

-----BEGIN PRIVATE KEY-----
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-----END PRIVATE KEY-----

我在这个问题上苦苦挣扎了两天,如果有人可以解决或提供一些提示来解决这个问题,将不胜感激。

【问题讨论】:

    标签: php jwt app-store-connect guzzle


    【解决方案1】:

    guzzle 有问题。当我在没有异步的情况下使用它时。它开始工作了

    $response = $client->request('GET', 'apps', ['headers' => ['Authorization' => "Bearer $jwt"]])->getBody()->getContents();
    

    如果有人能给我一个理由,为什么当我使用它异步时会发生这种情况,学习它会很有趣。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      • 1970-01-01
      相关资源
      最近更新 更多