Все работает правильно для получения трофеев, игровой библиотеки и игровой статистики. Однако я не могу определить, каким уровнем подписки PS Plus в настоящее время обладает аутентифицированный пользователь.
Что мне нужно
Мне нужен способ программного определения наличия у пользователя активной подписки PS Plus и определения конкретного уровня:
- Основной
- Экстра
- Делюкс/Премиум
Я попробовал три разных подхода, но все безуспешно:
1. API устаревшего профиля (
Код: Выделить всё
psnawpКод: Выделить всё
from psnawp_api import PSNAWP
psn = PSNAWP(npsso_token)
client = psn.me()
legacy = client.get_profile_legacy()
# Returns 0 even though I have an active Deluxe subscription
print(legacy.get("plus"))
2. Конечная точка прямых разрешений Я попробовал вызвать API разрешений напрямую, используя токен доступа, сгенерированный аутентификатором.
Код: Выделить всё
import requests
access_token = psn.authenticator.token_response['access_token']
headers = {
"Authorization": f"Bearer {access_token}",
"User-Agent": "Mozilla/5.0" # Tried with and without user-agent
}
url = "https://m.np.playstation.com/api/entitlement/v1/users/me/entitlements"
r = requests.get(url, headers=headers)
print(r.status_code)
print(r.text)
Result: 403 Forbidden. The response is an HTML error page from Akamai, suggesting strict WAF/Bot protection or insufficient scopes on the token.
- Пользователи сохраняют запись в библиотеке даже после истечения срока действия подписки (заблокированные игры).
- Трудно отличить игру, купленную сразу, от игры, заявленной через каталог Extra/Premium.
Есть ли работающая в данный момент конечная точка или специальный метод в psnawp для надежного получения статуса и уровня пользователя PS Plus?
Если прямой API защищен, существует ли известный обходной путь или определенная область, необходимая для доступа к сведениям о подписке?
Подробнее здесь: https://stackoverflow.com/questions/798 ... luxe-using
Мобильная версия