POST https://graph.oculus.com/$APP_ID/verify_entitlement
| Параметр | Обязательный или нет | Описание | Тип | Пример |
|---|---|---|---|---|
access_token | Обязательный | Маркер носителя, содержащий OC|$APP_ID |$APP_SECRET или маркер доступа пользователя. | Строка | OC|1234|456789 |
sku | Необязательный | SKU для дополнительного товара, определенный при создании на панели разработчика. Если он не указан, вызывается проверка прав на основное приложение. | Строка | 50_gems |
user_id | Обязательный | Идентификатор пользователя, покупки которого вы хотите видеть | Строка | 123456789 |
curl -d "access_token=OC|$APP_ID|$APP_SECRET" -d "user_id=$USER_ID" -d "sku=$SKU" https://graph.oculus.com/$APP_ID/verify_entitlement
{"success":true,"grant_time":1744148687}
| Поле | Определение | Тип |
|---|---|---|
success | Определяет, имеет ли пользователь право собственности на предмет. | Логическое значение |
grant_time | Время, когда пользователь получил права на этот элемент (метка времени в формате Unix). | Число |
POST https://graph.oculus.com/$APP_ID/consume_entitlement
| Параметр | Обязательный или нет | Описание | Тип | Пример |
|---|---|---|---|---|
access_token | Обязательный | Маркер носителя, содержащий OC|$APP_ID |$APP_SECRET или маркер доступа пользователя. | Строка | OC|1234|456789 |
sku | SKU товара, определенный при создании на панели разработчика. | Строка | 50_gems | |
user_id | Обязательный | Идентификатор пользователя, покупки которого вы хотите видеть | Строка | 123456789 |
curl -d "access_token=OC|$APP_ID|$APP_SECRET" -d "user_id=$USER_ID" -d "sku=$SKU" https://graph.oculus.com/$APP_ID/consume_entitlement
{"success":true}
| Поле | Определение | Тип |
|---|---|---|
success | Определяет, успешно ли было использовано право на доступ. | Логическое значение |
GET https://graph.oculus.com/$APP_ID/viewer_purchases
| Параметр | Обязательный или нет | Описание | Тип | Пример |
|---|---|---|---|---|
access_token | Обязательный | Маркер носителя, содержащий OC|$APP_ID |$APP_SECRET или маркер доступа пользователя. | Строка | OC|1234|456789 |
user_id | Обязательный | Идентификатор пользователя, покупки которого вы хотите видеть | Строка | 123456789 |
fields | Необязательный | Список имен полей, разделенных запятыми. Может содержать: id, grant_time, expiration_item, item. | Строка значений через запятую | fields=id,grant_time,expiration_time,item{sku} |
curl -G -d "access_token=OC|$APP_ID|$APP_SECRET" -d "user_id=$USER_ID" -d "fields=id,grant_time,expiration_time,item{sku}" https://graph.oculus.com/$APP_ID/viewer_purchases
{
"data": [
{
"id":"0",
"grant_time":1626821865,
"expiration_time":0,
"item": {
"sku":"EXAMPLE1",
"id":"3911516768971206"
}
}
],
"paging": {
"cursors": {
"after": "QYFIUjlhQjNhOTJZAR0ZAaMkhhM1JKZADdNX2o0a2FSSlJLSWcw",
"before": "QYFIUkZAxd2FRSkNoWHJQV3FmRG5TY3BDeUgwRzFaMXd"
},
"previous": "https://graph.oculus.com/$APP_ID/viewer_purchases?access_token=..."
"next": "https://graph.oculus.com/$APP_ID/viewer_purchases?access_token=..."
}
}
| Поле | Определение | Тип |
|---|---|---|
id | Уникальный идентификатор. | Строка |
grant_time | Время, когда пользователь получил права на этот элемент (метка времени в формате Unix). | Число |
expiration_time | Время, когда пользователь утратит права на этот элемент (метка времени в формате Unix). Если пользователю предоставлено бессрочное право, его значение будет установлено на 0. | Число |
item.sku | SKU времени | Строка |
GET https://graph.oculus.com/application/available_purchases
| Параметр | Обязательный или нет | Описание | Тип | Пример |
|---|---|---|---|---|
access_token | Обязательный | Маркер носителя, содержащий OC|$APP_ID |$APP_SECRET или маркер доступа пользователя. | Строка | OC|1234|456789 |
fields | Необязательный | Список имен полей, разделенных запятыми. Может содержать: sku, current_offer, billing_plans (для товаров по подписке). | Строка с разделителями-запятыми | sku,current_offer{description,price{currency,amount_in_hundredths,formatted},name},billing_plans{paid_offer{description,price{currency,amount_in_hundredths,formatted},name},trial_offers{max_term_count,trial_type,trial_term,description,name,price{currency,amount_in_hundredths,formatted}}} |
curl -d "access_token=OC|$APP_ID|$APP_SECRET" -d "fields=sku,current_offer{description,price{currency,amount_in_hundredths,formatted},name},billing_plans{paid_offer{description,price{currency,amount_in_hundredths,formatted},name},trial_offers{max_term_count,trial_type,trial_term,description,name,price{currency,amount_in_hundredths,formatted}}}" -G https://graph.oculus.com/application/available_purchases
{
"data": [
{
"id": "23518108958879017",
"sku": "subs-bronze:SUBSCRIPTION__MONTHLY",
"current_offer": {
"description": "Subscription - Bronze Description",
"price": {
"currency": "USD",
"amount_in_hundredths": 299,
"formatted": "$2.99"
},
"name": "Subscription - Bronze",
"id": "6974589902912852"
},
"billing_plans": [
{
"paid_offer": {
"description": "Subscription - Bronze Description",
"price": {
"currency": "USD",
"amount_in_hundredths": 299,
"formatted": "$2.99"
},
"name": "Subscription - Bronze",
"id": "2274589902912852"
},
"trial_offers": [
{
"trial_type": "FREE_TRIAL",
"trial_term": "MONTHLY",
"description": "Subscription - Bronze Description",
"name": "Subscription - Bronze",
"price": {
"currency": "USD",
"amount_in_hundredths": 0,
"formatted": "$0.00"
},
"id": "3012763990016787"
}
]
}
]
},
{
"id": "23518108958879017",
"sku": "subs-bronze:SUBSCRIPTION__SEMIANNUAL",
"current_offer": {
"description": "Subscription - Bronze Description",
"price": {
"currency": "USD",
"amount_in_hundredths": 999,
"formatted": "$9.99"
},
"name": "Subscription - Bronze",
"id": "1277845290061617"
},
"billing_plans": [
{
"paid_offer": {
"description": "Subscription - Bronze Description",
"price": {
"currency": "USD",
"amount_in_hundredths": 999,
"formatted": "$9.99"
},
"name": "Subscription - Bronze",
"id": "127784349006157"
},
"trial_offers": [
{
"trial_type": "FREE_TRIAL",
"trial_term": "MONTHLY",
"description": "Subscription - Bronze Description",
"name": "Subscription - Bronze",
"price": {
"currency": "USD",
"amount_in_hundredths": 0,
"formatted": "$0.00"
},
"id": "121211290016787"
}
]
}
]
},
],
"paging": {
"cursors": {
"after": "QYFIUjlhQjNhOTJZAR0ZAaMkhhM1JKZADdNX2o0a2FSSlJLSWcw",
"before": "QYFIUkZAxd2FRSkNoWHJQV3FmRG5TY3BDeUgwRzFaMXd"
}
}
}
| Поле | Определение | Тип |
|---|---|---|
id | Уникальный идентификатор. | Строка |
sku | SKU товара. Товары подписки с несколькими сроками будут возвращаться как отдельные объекты в ответе в формате {SKU}:SUBSCRIPTION__{TERM}. | Строка |
current_offer | Самое выгодное платное или пробное предложение по цене. | CurrentOffer |
billing_plans | Массив, отображающий тарифные планы подписки. Тарифные планы включают в себя данные о платных предложениях, стартовых предложениях и пробных периодах. ПРИМЕЧАНИЕ. Это относится только к товарам по подписке. | Массив BillingPlan |
| Поле | Определение | Тип |
|---|---|---|
trial_offers | Пробные предложения для подписки: Бесплатная пробная версия или ознакомительное предложение. | Массив TrialOffer |
paid_offer | Платное предложение, связанное с условием подписки. | PaidOffer |
| Поле | Определение | Тип |
|---|---|---|
description | Описание условий предложения. | Строка |
name | Наименование предложения. | Строка |
price | Информация о цене, связанная с предложением. | Цена |
| Поле | Определение | Тип |
|---|---|---|
subscription_term | Тип подписки (например: MONTHLY, ANNUAL, WEEKLY, BIWEEKLY, QUARTERLY, SEMIANNUAL). | Строка |
description | Описание условий предложения. | Строка |
name | Наименование предложения. | Строка |
price | Стоимость предложения. | Цена |
| Поле | Определение | Тип |
|---|---|---|
trial_term | Тип подписки (например: MONTHLY, ANNUAL, WEEKLY, BIWEEKLY, QUARTERLY, SEMIANNUAL). | Строка |
trial_type | Вид пробного периода (например: FREE_TRIAL, INTRO_OFFER). | Строка |
max_term_count | Число периодов, в течение которых будет действовать intro_offer. Действует только для вводных предложений. | Целое число |
description | Описание условий предложения. | Строка |
name | Наименование предложения. | Строка |
price | Стоимость предложения. | Цена |
| Поле | Определение | Тип |
|---|---|---|
currency | Валюта цены (например, USD, EUR). | Строка |
amount_in_hundredths | Сумма цены в сотых. Например, цена 11,99 представлена как 1199. | Число |
formatted | Отформатированная цена (например, $11,99). | Строка |
POST https://graph.oculus.com/$APP_ID/refund_iap_entitlement
| Параметр | Обязательный или нет | Описание | Тип | Пример |
|---|---|---|---|---|
access_token | Обязательный | Маркер носителя, содержащий OC|$APP_ID |$APP_SECRET или маркер доступа пользователя. | Строка | OC|1234|456789 |
sku | Обязательный | SKU товара, определенный при создании на панели разработчика. | Строка | 50_gems |
user_id | Обязательный | Идентификатор пользователя, покупки которого вы хотите видеть | Строка | 123456789 |
reason | Обязательный | Причина возврата (например, customer_support, unable_to_fulfill, другое) | Строка | customer_support |
curl -d "access_token=OC|$APP_ID|$APP_SECRET" -d "user_id=$USER_ID" -d "sku=$SKU" -d "reason=$REASON" https://graph.oculus.com/$APP_ID/refund_iap_entitlement
{"success":true}
| Поле | Определение | Тип |
|---|---|---|
success | Определяет, был ли возврат права на встроенную покупку успешным. | Логическое значение |