首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不使用Firebase控制台的情况下发送Firebase云消息通知?

如何在不使用Firebase控制台的情况下发送Firebase云消息通知?
EN

Stack Overflow用户
提问于 2016-05-22 16:11:50
回答 17查看 384.3K关注 0票数 232

我先从谷歌新推出的通知服务Firebase Cloud Messaging开始。

多亏了这段代码https://github.com/firebase/quickstart-android/tree/master/messaging,我才能从我的Firebase用户控制台向我的安卓设备发送通知。

有没有什么API或方法可以在不使用Firebase控制台的情况下发送通知?我的意思是,例如,一个PHP API或类似的东西,直接从我自己的服务器创建通知。

EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2016-05-23 00:26:44

Firebase Cloud Messaging有一个服务器端API,您可以调用它来发送消息。参见https://firebase.google.com/docs/cloud-messaging/server

发送消息可以像使用curl调用HTTP端点一样简单。请参阅https://firebase.google.com/docs/cloud-messaging/server#implementing-http-connection-server-protocol

代码语言:javascript
复制
curl -X POST --header "Authorization: key=<API_ACCESS_KEY>" \
    --Header "Content-Type: application/json" \
    https://fcm.googleapis.com/fcm/send \
    -d "{\"to\":\"<YOUR_DEVICE_ID_TOKEN>\",\"notification\":{\"title\":\"Hello\",\"body\":\"Yellow\"}}"
票数 252
EN

Stack Overflow用户

发布于 2016-08-21 04:28:30

这在使用CURL时有效

代码语言:javascript
复制
function sendGCM($message, $id) {


    $url = 'https://fcm.googleapis.com/fcm/send';

    $fields = array (
            'registration_ids' => array (
                    $id
            ),
            'data' => array (
                    "message" => $message
            )
    );
    $fields = json_encode ( $fields );

    $headers = array (
            'Authorization: key=' . "YOUR_KEY_HERE",
            'Content-Type: application/json'
    );

    $ch = curl_init ();
    curl_setopt ( $ch, CURLOPT_URL, $url );
    curl_setopt ( $ch, CURLOPT_POST, true );
    curl_setopt ( $ch, CURLOPT_HTTPHEADER, $headers );
    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
    curl_setopt ( $ch, CURLOPT_POSTFIELDS, $fields );

    $result = curl_exec ( $ch );
    echo $result;
    curl_close ( $ch );
}

?>

$message是您要发送到设备的消息

$id设备注册令牌

YOUR_KEY_HERE是您的服务器应用编程接口密钥(或传统服务器应用编程接口密钥)

票数 64
EN

Stack Overflow用户

发布于 2016-06-03 02:08:23

使用服务api。

网址:https://fcm.googleapis.com/fcm/send

方法类型:POST

标头:

代码语言:javascript
复制
Content-Type: application/json
Authorization: key=your api key

正文/有效负载:

代码语言:javascript
复制
{ "notification": {
    "title": "Your Title",
    "text": "Your Text",
     "click_action": "OPEN_ACTIVITY_1" // should match to your intent filter
  },
    "data": {
    "keyname": "any value " //you can get this data as extras in your activity and this data is optional
    },
  "to" : "to_id(firebase refreshedToken)"
} 

在你的应用中,你可以在你要调用的activity中添加下面的代码:

代码语言:javascript
复制
<intent-filter>
    <action android:name="OPEN_ACTIVITY_1" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

也可以在Firebase onMessageReceived not called when app in background上查看答案

票数 56
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37371990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档