0
これは私がそれを取得し、プッシュ通知を送信しようとして書いたものです:私が得たGoogle Firebase Cloud Messaging ServerがMoved Temporarilyを返すのはなぜですか?
<?php
//send FCM notification
$fcmToken = "My device token";
$fcmKey = "My Firebase Cloud Messaging Server Key";
//I tried curl like this but I barely understand it and it wouldn't work
//curl -X POST --header "Authorization: key=$fcmKey" --Header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d "{\"to\":\"$fcmToken\",\"notification\":{\"body\":\"Yellow\"},\"priority\":10}"
echo "starting curl <hr>";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://fcm.googleapis.com/fcm/send");
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Authorization: key=$fcmKey","Content-Type: application/json","to: $fcmToken","notification:{\"body\":\"Yellow\"}","priority: 10")); //setting custom header
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
echo "curlResult: " . $result;
curl_close($curl);
echo "<hr>curl end";
?>
出力は、次のように任意の助けを事前になぜ?:
starting curl <hr>curlResult: <HTML>
<HEAD>
<TITLE>Moved Temporarily</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Temporarily</H1>
The document has moved <A HREF="https://firebase.google.com/docs/cloud-messaging/http-server-ref">here</A>.
</BODY>
</HTML>
<hr>curl end
おかげでした!
あなたがリダイレクトされているように聞こえます。これはウェブ上では非常に一般的ですが、なぜGoogleがここでそれをしたのかを推測する理由は多すぎます。あなたは、リダイレクトに従うようにCurlを調べることができます:http://stackoverflow.com/questions/18474690/is-there-a-way-to-follow-redirects-with-command-line-curl –
そうですブラウザにはhttps://firebase.google.com/docs/cloud-messaging/http-server-refに移動します。これは次の場合に発生します。curl_setopt($ curl、CURLOPT_FOLLOWLOCATION、true);しかし、それは意味がありません、それは私が間違ったURLを持っているようですが、それはドキュメントが言うものです。 – Eric
リダイレクトは、何かが動いたときだけでなく、多くの理由で使用されます。たとえば、ウェブサイトにデータをPOSTすると、ほとんどのウェブサイトがあなたにリダイレクトされます。これにより、ブラウザは情報を2回送信しません。同じことがしばしばログインにも当てはまります。最初のリクエストでユーザー名とパスワードが送信され、サーバーはセッションにCookieを渡しながら別のページに転送します。ブラウザは再び、「戻る」をクリックしても2回目のログインを試みません。 –