Как получить доступ к Monica HQ API с помощью Python?

У меня возникли проблемы с доступом к API для Monicahq.com. Я очень начинающий разработчик и в настоящее время изучаю, как использовать запросы GET для извлечения данных из веб-приложения с помощью Python.

Я просмотрел некоторые онлайн-руководства, и стало ясно, что мне нужно использовать пакет «запросы», а также предоставить свой токен доступа (который я получил). Я просто не уверен, какой код написать. Это то, что у меня есть до сих пор:

import requests

response = requests.get('https://app.monicahq.com/settings/api', headers = {'authorization': 'Token XXXXXX'})

print(response.text)

Все, что я получаю, это веб-страница Моники в формате html. Я думаю, что проблема может заключаться в том, что я использую неправильную ссылку, но я не уверен, какую именно ссылку мне следует использовать для подключения к серверу? И тогда как мне получить JSON для напоминаний, которые у меня есть в моей учетной записи? Документация API находится здесь, если это кому-то поможет. https://www.monicahq.com/api/reminders

Извините, если это вопрос супер новичка, но это то, чем я сейчас занимаюсь, и любая помощь будет оценена по достоинству!

что вы ожидаете получить обратно? обычно API имеет некоторые другие параметры, которые вам нужно передать

SuperStew 09.04.2019 22:33

также попробуйте https://app.monicahq.com/settings/api/reminders/ вместо URL

SuperStew 09.04.2019 22:36

Я пытаюсь получить JSON напоминаний, которые у меня есть, которые приближаются! Я хочу иметь доступ к этим напоминаниям, чтобы, возможно, их можно было отправить мне по электронной почте, через IFTTT или что-то в этом роде.

JaP 09.04.2019 22:52

Обычно заголовок Authorization, а не authorization. Обратите внимание, что это должно быть в верхнем, а не в нижнем регистре. Вы пробовали изменить заголовок в нижнем регистре на верхний?

entpnerd 09.04.2019 23:44
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
169
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Этот API кажется очень плохим, но я думаю, что это работает.

import requests
from bs4 import BeautifulSoup as bs
import json

url=r'https://monicahq.com/api/reminders'
headers = {
'Authorization': 'Bearer XXXXXXXXX'
}
#get response
r=requests.get(url,headers=headers)
#make soup
soup=bs(r.text,'html.parser')
#extract json out of mess of html
j=json.loads(soup.find('code',{'class':'json'}).text)
#now j is the json object
print(j)
>{'data': [{'id': 2,
   'object': 'reminder',
   'title': 'Wish happy birthday to Danny',.....

Документация устарела или есть какая-то другая проблема, я никогда не мог заставить API возвращать только json, как он говорит, что будет.

Я также рекомендую вам удалить свой ключ API из вопроса.

Большое спасибо! Должен ли я использовать «Bearer»? Также это был поддельный ключ API, но я все равно его удалю.

JaP 09.04.2019 23:20

я верю, что вы делаете, или так говорят документы. Если это подделка, вы можете оставить это, может быть полезно

SuperStew 09.04.2019 23:21

Можешь дать ссылку, где в доке так написано?

JaP 09.04.2019 23:25

Также я получаю напоминания для людей, которых нет в моем списке контактов, хотя я заменил XXXXX своим собственным ключом API.

JaP 09.04.2019 23:28

Кажется, я получаю статическую страницу - я понятия не имею, кто этот парень "Дэнни", но он появляется в моих напоминаниях так же, как и в ваших...

JaP 09.04.2019 23:40

Да, я думаю, ты прав. без настоящего ключа я не могу быть уверен, но попробуйте использовать заголовок, который у меня есть выше, но с вашим настоящим ключом, и https://app.monicahq.com/api/reminders в качестве URL-адреса

SuperStew 09.04.2019 23:42

Вы можете видеть в ссылке на документ API, ключевое слово для аутентификации заголовка — «Bearer»: https://www.monicahq.com/api#аутентификация Поскольку Моника использует Laravel, это также описано на этой странице: https://laravel.com/docs/7.x/passport#передача токена доступа

Другие вопросы по теме