我一直试图制作一个简单的推送通知测试应用程序,而我似乎无法找出使用的正确凭据。
鉴于我发现了什么,我的信念是我需要的只是PushNotification服务器密钥,api项目编号和设备的注册ID。我从Google Dev控制台获取了我的服务器密钥:
我在控制台中的项目API编号: 顺便提一下," 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
。关于我失踪的任何想法?