2016-09-25 2 views
0

У меня есть чат-бот, запущенный на сайте, и я хотел бы иметь возможность интегрировать flattr в него. Он построен в узле и не имеет интерфейса, он просто использует API для взаимодействия с сайтом.Интеграция Flattr в чатбот

Я хотел бы быть в состоянии сделать что-то вроде этого

примечания: «!» Все команды для бота начинаются с
!flattr @username для Flattr пользователя

Я понимаю, это будет означать, люди, которые хотят либо получить или дать Flattr бы создать счета

Просто глядя на некоторые рекомендации относительно того, как начать это.

Вот что я думаю мне нужно:

Создание приложения, получить идентификатор клиента и секрет, пройти через поток OAuth и получить однонаправленный маркер. Включая область для flattr thing в этом процессе

Как долго истекают ваши токены? Должен ли я часто обновлять этот токен?

Тогда, я думаю, мне просто нужно было бы использовать the flattr thing api endpoint? Является ли пользователь считаться «вещью» в вашем api? Является ли :id для тайны thing или может ли он быть публичным без вреда?

Знает ли пользователь свой идентификатор или может ли он легко найти его? Или мне нужно использовать Users endpoint, чтобы получить эту информацию? И означает ли это добавление дополнительного объема?

Это моя идеальная ситуация. В чате настроить все пользователи на Flattr счет и может подключаться бот Flattr, выполнив:
!flattr addme [flattr username] (в качестве альтернативы они могут использовать Flattr ID, если доступна)
тогда как я уже упоминал выше, они могут просто использовать !flattr @[username] и это его

спасибо!

ответ

1

Вам нужны учетные данные API, но для области «flattr» должно быть достаточно. Вам необходимо решить три проблемы, идентифицировать пользователей, пройти проверку подлинности пользователей, а затем flattring URL: s (потому что система Flattr работает только с URL: s).

Позже это легко, лучше всего, если ваше приложение/сайт предоставили страницу профиля для каждого пользователя. Что-то вроде 'http://example.com/user/francisc0'. Затем вы просто вызываете конечную точку/flattr с этим URL-адресом. Ответ на URL-адрес должен либо содержать что-то, что Flattr мог использовать для идентификации пользователя Flattr, либо , вам нужно было бы передать идентификатор пользователя вместе с запросом flattr. Читайте на автоматической отправке URL: s. Но в общем, авто-представить URL выглядит https://flattr.com/submit/auto?fid=abc123&url=http%3A%2F%2Fexample.com%2Fuser%2Ffrancisc0

Для того, чтобы идентифицировать пользователей, они должны иметь уникальные имена пользователей в чате (или что-то другое, что является уникальным, что вы можете для поиска от имени пользователя) , Каждый пользователь также должен будет сообщить вашему приложению, что такое идентификатор flattr. Это может быть так же просто, как поле ввода, в котором пользователь вручную добавляет свой идентификатор, или вы можете извлечь его из API (посмотрите на конечную точку/пользователя).

Теперь, чтобы добавить URL-адрес вашего приложения (клиент api), необходимо пройти аутентификацию как пользователь Flattr. Как пользователь Flattr, набравший команду «! Flattr @username». Поэтому мое предложение состоит в том, что, когда пользователь хочет включить возможность flattr в чате, вы выполняете аутентификацию oauth для них и сохраняете токен доступа (они никогда не истекают btw). Когда пользователь вводит «! Flattr @username» в чате, вы извлекаете токен доступа для этого пользователя из хранилища, а затем отправляете запрос flattr в качестве этого пользователя.

Это должно быть так.

Я сделал что-то подобное для IRC несколько лет назад, и он отлично поработал, поэтому он также должен работать для вашего прецедента.

Советы профессионалов: Избегайте использования конечных точек/thing, поскольку они будут устаревать очень скоро. Документация api на самом деле не актуальна, но это тоже очень скоро меняется. Пользовательские объекты скоро будут включать атрибут 'idv3', используйте его как идентификатор пользователя вместо 'id'.

Источник: am Flattr dev.

Смежные вопросы