Невозможно подключить мой сервер приложений к серверу FCM XMPP - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь подключиться к серверу FCM XMPP с помощью Openssl TLS

Я зарегистрировал проект и у меня есть ключ сервера и идентификатор отправителя. Я следую за примечаниями в https://firebase.google.com/docs/cloud-messaging/auth-server#authorize_an_xmpp_connection

Все мои коды в C с использованием openssl.

Ниже приведены сообщения между моим сервером приложений и сервером FCM-XMPP. Сервер приложений для FCM-XMPP:

<stream:stream to='fcm-xmpp.googleapis.com' version='1.0' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'>

с сервера FCM-XMPP:

<stream:stream from="fcm-xmpp.googleapis.com" id="E1204B9D567A6A8A" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client">
<stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>X-OAUTH2</mechanism><mechanism>X-GOOGLE-TOKEN</mechanism><mechanism>PLAIN</mechanism></mechanisms></stream:features>

Сервер приложений для FCM-XMPP:

<auth mechanism='PLAIN' xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>base 64 encoding of <null>sendID@fcm-xmpp.googleapis.com<null>serverKey</auth>

с сервера FCM-XMPP:

<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>

У меня есть сервер приложений, обменивающийся данными с сервером GCM-XMPP. Я работаю в основном тот же код, и я получаю

<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>

1 Ответ

0 голосов
/ 13 июня 2019

Сервер приложений для FCN-XMPP должен быть:

<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'></auth>

Сервер ответит пустой строкой.Это ваш сигнал для отправки закодированных данных:

<response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">encodedData</response>

, для которых кодированные данные должны быть закодированной версией:
\ 0sendID@fcm-xmpp.googleapis.com \ 0serverKey

Если это успешно, вы получите тег успеха.

По крайней мере, все это относится к моему клиенту, который я реализовал сам.

...