Google GCM MismatchSenderID

时间:2016-03-11 14:20:03

标签: c# android google-cloud-messaging

我一直试图制作一个简单的推送通知测试应用程序,而我似乎无法找出使用的正确凭据。

鉴于我发现了什么,我的信念是我需要的只是PushNotification服务器密钥,api项目编号和设备的注册ID。我从Google Dev控制台获取了我的服务器密钥: enter image description here

我在控制台中的项目API编号: enter image description here 顺便提一下," project = api-project - "在我的信息中心网址中。

最后,我从InstanceID对象获取的设备注册ID:

var instanceID = InstanceID.GetInstance (this);
var token = instanceID.GetToken (
                        "68********12", GoogleCloudMessaging.InstanceIdScope, null);

Log.Info ("RegistrationIntentService", "GCM Registration Token: " + token);
SendRegistrationToAppServer (token);
Subscribe (token);

Altough我相信应用程序永远不会达到GCM尝试将消息发送到应用程序的程度,我相信问题存在于发送消息的应用程序和GCM服务器之间。我需要的只是它不是吗?

对于将推送消息发送到应用程序的代码(通知我错误的代码),我使用的是PushSharp库v3。代码看起来像这样:

List<string> registrationIDs = new List<string> ();
registrationIDs.Add ("APA*************************************HnHb");
var config = new GcmConfiguration ("AIza**********w8");
var broker = new GcmServiceBroker (config);


broker.OnNotificationFailed += (GcmNotification notification, AggregateException exception) => {
    exception.Handle(ex => {
        /*Ex handling*/

        return true;
    });
};

broker.OnNotificationSucceeded += (notification) => {
    Console.WriteLine ("Notification Sent!");
};
broker.Start ();
string message = "";
while (message != "quit"){
    Console.Clear ();
    Console.WriteLine ("Message to be sent (\"quit\" to quit):\n");
    message = Console.ReadLine ();
    broker.QueueNotification (new GcmNotification () {
        RegistrationIds = registrationIDs,
        Notification = JObject.Parse ("{\"alert\":\"" + message + "\",\"badge\":7}")
    });
}
broker.Stop ();

我将从broker.OnNotificationFailed行获取GCM服务器中的MismatchSenderID。关于我失踪的任何想法?

0 个答案:

没有答案