# Изменение статуса темы через API на pinned-global не работает

**URL:** https://meta.discourse.org/t/changing-topic-status-via-api-to-pinned-global-does-not-work/133705
**Category:** Bug
**Created:** [18.Ноябрь.2019 16:43:59 UTC](https://meta.discourse.org/t/changing-topic-status-via-api-to-pinned-global-does-not-work/133705 "2019-11-18T16:43:59Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![marcozambi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcozambi/32/119505_2.png) [@marcozambi](https://meta.discourse.org/u/marcozambi)
#### Post date: [18.Ноябрь.2019 16:43:59 UTC](https://meta.discourse.org/t/changing-topic-status-via-api-to-pinned-global-does-not-work/133705/1 "2019-11-18T16:43:59Z")

</div>

Я работаю над скриптом на Python, который использует API Discourse для установки статуса поста в ‘ **pinned-globally** ’, следуя [документации API](https://docs.discourse.org/#tag/Topics/paths/~1t~1%7Bid%7D~1status/put).

Запрос на установку статуса ‘pinned-globally’ завершается ошибкой с кодом возврата 400, тогда как запрос с параметром status, установленным в ‘ **pinned** ’, работает безупречно (то есть я вижу, что пост закреплен локально).  
Вот фрагмент моего кода:

```plaintext
apiWebsite = '<my_website_URL>'
apiKey = '<secret>'
apiUsername = '<secret>'

headers = {
    'Api-Key': apiKey,
    'Api-Username': apiUsername
}

# Этот запрос работает корректно
# Закрепить тот же пост локально
payload = {
    'status': 'pinned',
    'enabled': 'true',
    'until': '2019-11-25T08:00:00'
}
u = requests.put(apiWebsite + '/t/29082/status', headers=headers, data=payload)
print(u.status_code)

```

После сброса статуса закрепления на false я пытаюсь закрепить пост глобально следующим образом.

```plaintext
# Этот запрос НЕ РАБОТАЕТ
# Закрепить ту же тему глобально
payload = {
    'status': 'pinned-globally',
    'enabled': 'true',
    'until': '2019-11-25T08:00:00'
}
u = requests.put(apiWebsite + '/t/29082/status', headers=headers, data=payload)
print(u.status_code)

```

Не упускаю ли я что-то очевидное, или это настоящая ошибка?

P.S. У пользователя достаточно привилегий.

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [18.Ноябрь.2019 16:50:17 UTC](https://meta.discourse.org/t/changing-topic-status-via-api-to-pinned-global-does-not-work/133705/2 "2019-11-18T16:50:17Z")

</div>

Вы не можете закрепить одну и ту же тему одновременно в глобальном и локальном масштабе. Вы можете выбрать один из вариантов.

---

<div class="post-metadata">

### Author: ![marcozambi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcozambi/32/119505_2.png) [@marcozambi](https://meta.discourse.org/u/marcozambi)
#### Post date: [18.Ноябрь.2019 16:51:31 UTC](https://meta.discourse.org/t/changing-topic-status-via-api-to-pinned-global-does-not-work/133705/3 "2019-11-18T16:51:31Z")

</div>

Привет, Дэвид, конечно, я написал код именно так, чтобы показать разницу между двумя запросами. Я изменю первый пост, чтобы сделать всё более понятным.

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [18.Ноябрь.2019 16:54:52 UTC](https://meta.discourse.org/t/changing-topic-status-via-api-to-pinned-global-does-not-work/133705/4 "2019-11-18T16:54:52Z")

</div>

Ах, хорошо 👌. Просматривая код, я вижу это, что вызывает ошибку 400

> <https://github.com/discourse/discourse/blob/6e1fe22a9dded8f711fb18b8b14dad0dd921dc90/app/controllers/topics_controller.rb#L1038>

Думаю, вам нужно использовать `pinned_globally` вместо `pinned-globally`. Можете попробовать это и посмотреть, сработает ли? Похоже, это опечатка в нашей документации по API — я исправлю её.

Редактирование: исправлено в [Correct pinned\_globally in topic status documentation · discourse/discourse\_api\_docs@fcf0d5f · GitHub](https://github.com/discourse/discourse_api_docs/commit/fcf0d5fb7a06728365f8dda4d2223a5ab2dfddca)

---

<div class="post-metadata">

### Author: ![marcozambi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcozambi/32/119505_2.png) [@marcozambi](https://meta.discourse.org/u/marcozambi)
#### Post date: [18.Ноябрь.2019 17:04:54 UTC](https://meta.discourse.org/t/changing-topic-status-via-api-to-pinned-global-does-not-work/133705/5 "2019-11-18T17:04:54Z")

</div>

Подтверждено! 🙂  
Большое спасибо! 👏

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [19.Ноябрь.2019 04:29:38 UTC](https://meta.discourse.org/t/changing-topic-status-via-api-to-pinned-global-does-not-work/133705/6 "2019-11-19T04:29:38Z")

</div>


