0
我試圖按照本教程here在C#發送推送通知與GCM - 401未授權
本教程有一個用於連接到相當直截了當代碼來創建一個基於控制檯服務器應用程序發送推送通知到Android客戶端GCM服務發送通知給客戶端,就像這樣:
public const string API_KEY = "AIzaS...jhqOydFCU";
public const string MESSAGE = "Hello!";
static void Main(string[] args)
{
var jGcmData = new JObject();
var jData = new JObject();
jData.Add("message", MESSAGE);
jGcmData.Add("to", "/topics/global");
jGcmData.Add("data", jData);
var url = new Uri("https://gcm-http.googleapis.com/gcm/send");
try
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.TryAddWithoutValidation(
"Authorization", "key=" + API_KEY);
Task.WaitAll(client.PostAsync(url,
new StringContent(jGcmData.ToString(), Encoding.Default, "application/json"))
.ContinueWith(response =>
{
Console.WriteLine(response);
Console.WriteLine("Message sent: check the client device notification tray.");
}));
}
}
catch (Exception e)
{
Console.WriteLine("Unable to send GCM message:");
Console.Error.WriteLine(e.StackTrace);
}
}
我從服務器的響應頭中獲得401未經授權的錯誤。我嘗試了不同的API密鑰,但結果是一樣的。我不確定這可能是什麼原因。我的客戶端應用程序沒有收到服務器發送的任何通知。
您是否通過Fiddler嘗試過該請求?請參閱:http://stackoverflow.com/a/11903863/2779990 –
這是gcm服務未啓用的情況。現在工作正常! –