Как использовать учетные данные OAuth 2.0 с api blogger v3 (запросы python)

#python #python-requests #blogger #google-blogger-api

Вопрос:

Я пытаюсь немного автоматизировать написание своего блога с помощью Blogger API v3.0 .

У меня есть свой API_KEY , и с его помощью мне удалось получить доступ к своему блогу таким образом:

 import requests

APIKEY = 'XXX-YYY-ZZZ'
BLOGID = '12345678'
get_blog = 'https://www.googleapis.com/blogger/v3/blogs/{BLOGID}?key={APIKEY}'.format(BLOGID=BLOGID, APIKEY=APIKEY)
response = requests.get(get_blog)
 

Затем я попытался создать новый пост:

 params = {
  "kind": "blogger#post",
  "blog": {
    "id": BLOGID 
  },
  "title": "A new post",
  "content": "With <b>exciting</b> content..."
}

new_post = 'https://www.googleapis.com/blogger/v3/blogs/{blogID}/posts/?key={APIKEY}'.format(blogID=bereshitID, APIKEY=APIKEY)
response = requests.post(get_blog, params=params)
 

Но я получил ошибку:
{u'error': {u'status': u'PERMISSION_DENIED', u'message': u'The caller does not have permission', u'code': 403, u'errors': [{u'reason': u'forbidden', u'message': u'The caller does not have permission', u'domain': u'global'}]}}

Поэтому я решил, что мне нужны учетные данные OAuth 2.0. Поэтому я создал его, и теперь у меня есть client_id и client_secret и я попытался добавить его в параметры:

 CLIENT_SECRET = 'ABCD-EFGH'
CLIENT_ID = '1111'

params = {
  "client_secret" : CLIENT_SECRET,
  "client_id" : CLIENT_ID,
  "kind": "blogger#post",
  "blog": {
    "id": BLOGID 
  },
  "title": "A new post",
  "content": "With <b>exciting</b> content..."
}

new_post = 'https://www.googleapis.com/blogger/v3/blogs/{blogID}/posts/?key={APIKEY}'.format(blogID=bereshitID, APIKEY=APIKEY)
response = requests.post(get_blog, params=params)
 

Однако я все еще получаю ошибку, как и раньше.

Очевидно, мне здесь чего-то не хватает, но я не смог найти решение… Итак, как я должен OAuth 2.0 правильно использовать учетные данные?

Ответ №1:

Я нашел это руководство Раджашекара Джангама (ImRaj90) очень информативным.

Я последовал за ним и сумел работать со своим блогом, используя API.

Спасибо тебе, Раджашекар.