WordPress REST API — авторизация в Python
В этой статье рассмотрим процесс авторизации нашего приложения на Python с WordPress API:
- python – подготовим шаблон для аутентификации
- wordpress – получим пароль приложения
Настраиваем аутентификацию
Создаём файл config.py
, из которого будем брать headers
для запросов к API.
В user
указываем имя пользователя. В password
— пароль приложения, который получим на следующем шаге.
import base64
user = "your-username"
password = "your-application-password"
credentials = user + ':' + password
token = base64.b64encode(credentials.encode())
headers = {'Authorization': 'Basic ' + token.decode('utf-8')}
Получаем пароль приложения в WordPress
В настройках пользователя, под которым мы будем авторизовываться, получаем пароль приложения:
Пароль приложения покажется всего один раз. Копируем его в шаблон авторизации нашего приложения в python. Если доступ к приложению нужно заблокировать, можно отозвать пароль приложения. А при необходимости – создать новый.
Пример: создать запись
Для примера опубликуем пост в блоге. Для отправки запросов на сайт используем библиотеку requests
, а для авторизации в запросе передадим параметр headers
из нашего файла config.py
import requests
from config import headers
def main():
url = "https://usota.ru/wp-json/wp/v2/posts"
post = {
'title': 'Название записи',
'status': 'publish',
'content': 'Это тестовая запись для проверки работы rest API',
'categories': 1, # category ID
'date': '2022-07-28T10:00:00'
}
response = requests.post(url, headers=headers, json=post)
print(response)
if __name__ == '__main__':
main()
Если запись отправлена успешна, получим статус ответа <Response [201]>
.
Евгений спасибо за статью. А подскажите как это реализовать на локальном хосте. Например сайт WordPress развернут на openserver-e.
К сожалению, пока в этом компетенций нет. Буду рад, если у вас получится и поделитесь решением.