Я столкнулся с подобным типом ошибки аутентификации, т.е. NOT_AUTHORIZED .И я решил это, выполнив следующие действия:
1.Создайте файл сценария Ruby для создания действительного Bearer
токена:
Ref: https://medium.com/xcblog/generating-jwt-tokens-for-app-store-connect-api-2b2693812a35
require "base64"
require "jwt"
ISSUER_ID = "YOUR_ISSUER_ID"
KEY_ID = "YOUR PRIVATE KEY ID" // this is ID part from downloaded .p8 file name (see below for ref.)
private_key = OpenSSL::PKey.read(File.read(path_to_your_private_key/AuthKey_#{KEY_ID}.p8)) // you can enclose your file path in quotes if needed, and can pass here totally static file path (here we are reusing Key_ID variable)
token = JWT.encode(
{
iss: ISSUER_ID,
exp: Time.now.to_i + 20 * 60,
aud: "appstoreconnect-v1"
},
private_key,
"ES256",
header_fields={
kid: KEY_ID }
)
puts token
Затем запустите этот сценарий с помощью следующей команды на своем Mac.
$ ruby jwt.rb
На экране терминала отобразится действительный токен Bearer
, который можно использовать на следующем шаге.
Примечания:
- Для запуска вышеуказанного сценария вам необходимо установить
ruby
. - Вы скопируете ID эмитента из вашей учетной записи разработчика.Создайте его, если у вас его нет.
- Убедитесь, что вы используете сертификат «.p8» для аутентифицированного пользователя, что означает, что учетная запись, для которой вы скачали сертификат «.p8», должна иметь разрешение на выполнение уровня API.операция.Для моего случая я использовал учетную запись типа Admin .Первоначально я использовал учетную запись пользователя типа Developer , которая постоянно выдавала мне ошибку Not_Authorized , когда я обращаюсь к последнему вызову Curl для получения токена.
2.Использование токена:
Теперь, когда мы увидели, как генерировать токен для доступа к API App Store Connect, мы можем использовать его, передав заголовок авторизации.например, чтобы получить список всех пользователей, которых мы можем использовать
$ curl https://api.appstoreconnect.apple.com/v1/users --Header "Authorization: Bearer lOOOOOOOOOOOONG_GENERATED_TOKEN"
В этом списке будут перечислены все пользователи App Store Connect.Помните, что мы должны использовать этот токен при каждом запросе, который мы делаем, и мы должны создавать новый токен через каждые 20 минут.