Использование RingCentral PHP SDK для создания приложения, которое использует поток кода авторизации и подписывается на события присутствия

Я пытаюсь создать веб-приложение, которое использует RingCentral PHP SDK для подписки на события присутствия. Приложение будет использовать поток кода авторизации. Я получаю токен доступа, но не знаю, как использовать этот токен с объектами SDK и Platform. Похоже, SDK ориентирован на использование потока паролей.

Должен ли я использовать простой локон для вызова POST /restapi/v1.0/subscription HTTP/1.1 передать токен доступа в заголовок авторизации? Или есть способы использовать для этого объекты RingCentral SDK? Я что-то пропустил?

0

Решение

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

Чтобы создать подписку с помощью PHP SDK, вот демонстрационный код, содержащийся в Репозиторий RingCentral PHP SDK на Github

TL; DR

Я вижу два вопроса:

  1. Ли RingCentral PHP SDK служба поддержки Поток авторизации (3-Legged OAuth), поскольку в настоящее время SDK ориентирован только на Password Flow?

Поток авторизации — это лучший метод для создания мультитенантных приложений, поскольку он устраняет угрозу безопасности вашего приложения, хранящего имена пользователей и пароли, связанные с учетными записями RingCentral. RingCentral PHP SDK поддерживает типы авторизации потока авторизации и потока пароля. Как только ваш экземпляр PHP SDK имеет действительный access_token тогда он может создать подписку довольно легко.

Мы можем видеть в PHP SDK код на Github внутри src/Platform.php эта константа AUTHORIZE_ENDPOINT поддерживается как возвращаемое значение из запроса к authUrl ().

Вы можете увидеть в Пример GroCify для RingCentral OAuth PHP тот Authorization Flow поддерживается PHP SDK.

Как только ваш экземпляр SDK имеет действительный access_token, он будет использовать этот токен в Authorization заголовок при создании Subscription (), addListeners () и register (), как показано в этот PHP демо-код для создания подписки

  1. Как мне создать RingCentral Подписка использование с PHP SDK (есть ли у SDK объекты, связанные с ним, которые я могу использовать)?

Существует несколько способов использования RingCentral SDK. Я предоставил ссылку на демонстрацию PHP по созданию подписки в вышеуказанном TL; DR.

Поскольку вы работаете с RingCentral PHP SDK, тогда вы ограничены серверными реализациями, так как PHP — это серверный язык.

То, как вы решите реализовать свою подписку, полностью зависит от потребностей вашего приложения и ваших архитектурных требований. Поскольку вы указали, что используете Поток авторизации, это заставляет меня думать, что вы создаете многопользовательскую интеграцию веб-приложений. Так как вы сказали, что вы получаете access_tokenЯ полагаю, вы назвали Platform.login () и передал это код значение, которое вы получаете от запроса аутентификации 3-Legged /restapi/oauth/authorize и получил в редиректе. Я не уверен, что вы делаете все это с клиента или сервера, но я предполагаю, что сервер.

  • Вам нужно будет связать сеанс с экземпляром SDK и подпиской на стороне сервера. Это означает, что вам придется управлять несколькими экземплярами SDK и подписки для каждого сеанса на стороне клиента. Вам также может понадобиться реализовать WebSockets или Long-Polling, чтобы вы могли получать обновления событий почти в реальном времени, которые разрешены в Подписках. Так что пока да, RingCentral PHP SDK можно использовать с потоком авторизации, я лично я бы рекомендовал не использовать его для разработки приложений для конечных пользователей, на стороне клиента, для мультитенантных приложений (если только вы не подготовили должным образом для сопоставления сеансов с экземплярами SDK / Subscription, как я описал ранее.

  • Если вы не хотите управлять всем этим на стороне сервера, вы можете использовать RingCentral JS SDK на стороне клиента вашего PHP-приложения, но это может стать немного запутанным и потребовать некоторой ре-архитектуры вашего решения в зависимости от того, как у вас все устроено. Конечно, этот подход имеет изменчивый аспект в зависимости от того, что вы хотите сделать с данными, полученными из подписки, и от того, нужно ли вам их сохранять между сеансами (опять же, это зависит от вашего варианта использования).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]