アカウントデータを必要としないように、メールを使用してリンクされたアカウントに送信するだけで、プッシュブレットで簡単なプッシュ通知を送信しようとしています。(こちらのリファレンスを参照してください: https://docs.pushbullet.com/#pushes )
したがって、私はここで(だけでなく)見つけたphpで非cURLメソッドを使用しています: How do I send a POST request with PHP?
残念ながら、次のようなエラーが返されます。
<br />
<b>Warning</b>: file_get_contents(https://api.pushbullet.com/v2/pushes): failed to open stream: HTTP request failed! HTTP/1.0 401 Unauthorized
in <b>/path/to/function.php</b> on line <b>42</b><br />
bool(false)
file_get_contents に URL を使用するオプションが「オン」に設定されています。
私のコード:
$pushdata = array(
"email" => $email,
"type" => "link",
"title" => "Demo Pushbullet Notification",
"body" => "You have new comment(s)!",
"url" => "http://demo.example.com/comments"
);
//Post without cURL
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n"."Authorization: Bearer <xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>\r\n",
'method' => 'POST',
'content' => http_build_query($pushdata),
),
);
$context = stream_context_create($options);
$result = file_get_contents("https://api.pushbullet.com/v2/pushes", false, $context, -1, 40000);
var_dump($result);
編集:コードをクリストファーヘッセの応答に変更しましたが、まだ機能しません。また、プッシュすることを理解しているので、アクセストークンも必要ありません。ニュートラルからリンクされたメールに通知をプッシュしていると理解しています。たぶん私は間違っているかもしれませんが、アクセストークンはそれを修正しません。
EDIT(解決済み):通知をプッシュするにはアクセストークンが必要であり、この方法では機能しないため、cURLで機能します。