2016-07-30 10 views
1

私はアンドロイドの開発にFirebase Cloud Messagingを使用しており、サーバー側の言語としてPHPを使用しています。現時点では、次のことが可能です:Firebase Cloud Messagingから "InvalidTokenFormat、Error 400"を取得する

  1. 実際のアプリケーションとエミュレータの両方でFirebaseコンソールを使用してプッシュ通知を送信します。

  2. がそれでは

(カール)端末からそれをテストする場合、それは作業ガット、私の代わりにFirebase Consoleの(PHPのカールを使用して)apps serverから送信しようとしました。そして、今、私はPOSTリクエストをリクエストするたびに、この奇妙なメッセージInvalidTokenFormat, Error 400が発生しました。どんな考え?ここで

はFirebase APIのリンクが行われた次のとおりです。FirebaseApi Class

は、ユースケースの上meifからの任意の入力をお願いしてお気軽に十分明確ではありませんでした。ありがとう。

+0

「php curl」に何かが見つからないことがあります。 (AutorizationToken)?! –

+0

@IsmailRBOUHあなたは 'Authorization:key = some keys'ヘッダを意味していましたか? –

+0

ありがとうございます。カールリクエストを追加してください。 –

答えて

8

私の間違い。 URLは(最後にスラッシュなし)にする必要があります:

https://fcm.googleapis.com/fcm/send 
0

通知とメッセージのメッセージをサーバーからファイアベースに送信する必要がある場合、firebaseは要求を受け入れ、メッセージをすべてのユーザー(私たちが提供するトークン)にブロードキャストしますお知らせ 。

Firebaseとデバイスがポールモデルで動作するため、Firebaseのみがデバイスで通知を送信できますが、デバイスでポーリングを設定できますが、Googleでは許可しません。デバイスを使用すると、大量のリソースが必要になります。

+0

いや、私はそれをしました。しかし、代わりにそれらのエラーが発生しました –

0

生のリクエストcurl sendsをサーバーに投稿できますか?通常curlはそのための出力を提供しますが、phpのバージョンについてはわかりません。

+0

は既にこの問題を解決しました –

0

CURLOPT_POSTFIELDSはJSONを望んでいません。アプリケーション/ x-www-form-urlencodedリクエストを送信する場合はhttp_build_query($ message)を使用するか、multipart/form-dataリクエストを送信する場合は$ message配列を直接指定します。

+0

実際には、FCMの場合、 'text /'の代わりに 'application/json'を選択すると、' json'ヘッダと 'application/json'ヘッダが必要です。 –

+0

@NorlihazmeyGhazaliああ、あなたがCURLOPT_INFILE/CURLOPT_READFUNCTIONを使うべきだと思います.CURLOPT_POSTFIELDSではなく、 – hanshenrik

+0

です。ありがとうございます。 –

関連する問題