Azure Notification Hubを使用して、GCM/Firebase経由のプッシュ通知をXamarin Formsアプリケーションに配信しようとしています。XamarinアプリケーションをAzure通知ハブに登録しようとしたときに許可されていない例外
これは、我々はPCLでMobileServiceClientオブジェクトを作成するために使用するコードです:
public App()
{
mobileServiceClient = new Microsoft.WindowsAzure.MobileServices.MobileServiceClient("https://namespace.servicebus.windows.net/NotificationHubName", new ModernHttpClient.NativeMessageHandler());
}
私の知る限りでは、ドキュメントを理解できるように、我々が我々のように、カスタムHTTPハンドラを使用していないことは問題ではないはずですヘッダーなどを追加する必要はありません。通知が必要なだけで、Azureが認証を提供する必要はありません(Azure Active Directory B2Cを使用しています)。私は間違っているかもしれませんが、紛失した認証ヘッダが明らかにUnauthorized例外を引き起こす可能性があります。
これは、我々はAzureの通知ハブで私たちのアプリケーションを登録しようとするために使用するコードです:
public async void Register(Microsoft.WindowsAzure.MobileServices.Push push, IEnumerable<string> tags)
{
try
{
const string templateBodyGCM = "{\"data\":{\"message\":\"$(messageParam)\"}}";
JObject templates = new JObject();
templates["genericMessage"] = new JObject
{
{"body", templateBodyGCM}
};
await push.RegisterAsync(RegistrationID, templates);
Log.Info("Push Installation Id", push.InstallationId.ToString());
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
Debugger.Break();
}
}
は残念ながら、例外がのawait push.RegisterAsync(RegistrationID、テンプレート)にスローされます。
{Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException: The request could not be completed. (Unauthorized)
GCMから登録IDを受け取り、GoogleのアプリケーションをAzureに登録しようとすると例外が発生し、プッシュ通知が届きます。
残念ながら、通知ハブに関するほとんどの例では、MobileServiceClientコンストラクタで2番目のパラメータを必要としない古いコードを使用しています。コードはこのリポジトリに基づいています:https://github.com/xamarin/xamarin-forms-samples/tree/master/WebServices/TodoAzurePush
ありがとうございました!
編集:テストデバイスで日付/時刻同期がオンになっています。これは他の開発者にも同様の問題が発生したようですが、ここで問題にはならないようです。
は、それを固定している、ありがとう - 私たちは、実際のためのアプリケーションサービスを持っていませんでしたAzureのモバイルアプリは、通知に行きたいと思っていたからです。私たちはこれを作成し、通知ハブと接続しました。通知はうまく届きました。再度、感謝します! – Philippe
ありがとう、これはトリックでした。 –