1

Java バックエンド サービスを介して Azure Notification Hub からの通知用に Windows ユニバーサル アプリを登録しようとしています。

Windows Phone デバイスでアプリを実行しているときに、Visual Studio からアプリをデバッグしました。アプリは適切に ChannelUri を取得し、それを Java バックエンドに渡すことができました。(ローカル PC でバックエンドを実行しました。)

Java バックエンドは、テンプレート登録のために次の要求を生成し、それを Azure REST Api に送信しようとしました:

<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
   <content type="application/xml">
      <WindowsTemplateRegistrationDescription xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
         <Tags>Windows,10204394042027091,broadcast</Tags>
         <ChannelUri>https://db3.notify.windows.com/?token=AwYAAABXiUp%2bD8v1%2bVfWbWLr3FZ3rQcJtPkUgFwaiGZus4GbtkM8zbZ6uQt1NKXpC4FOtYWHDxXvBb3FkoefaozvCYTFiDjhdb3jDuORUDY8zBlkGw1MxY0QjrH7G0fFbW0RXgo%3d</ChannelUri>
         <BodyTemplate><![CDATA[{...}]]></BodyTemplate>
         <WNSHeaders>
            <WNSHeader>
               <Header>X-WNS-Type</Header>
               <Value>wns/raw</Value>
            </WNSHeader>
         </WNSHeaders>
         <TemplateName>geoinfo</TemplateName>
      </WindowsTemplateRegistrationDescription>
   </content>
</entry>

私の意見では、これは MS Azure REST リファレンスによるものです: http://msdn.microsoft.com/en-us/library/azure/dn223265.aspx

それでも、応答には次のエラーが含まれています。

<Error><Code>400</Code><Detail>The specified resource description is invalid..TrackingId:4ffaabcc-c7f8-4a6c-ab2f-4f65e94427df_G16,TimeStamp:10/21/2014 9:42:52 PM</Detail></Error>

ここにある Azure の問題について何か考えはありますか?

4

2 に答える 2

1

このエラー メッセージは、要求に必要な XML 要素が欠落していることを示しているようです。私の場合の問題は大文字化でした:

との両方はWNSHeaderWNSHeaders代わりにパスカル ケースで記述する必要がWnsHeaderありWnsHeadersます。

残念ながら、API に関する Microsoft のドキュメントは、これに関して誤解を招くものです。

于 2014-10-22T15:03:44.630 に答える
1

これを試して:

  1. コール作成登録 ID
  2. 取得したIDをDBに保存
  3. Create or Update Registrationを呼び出して登録を作成する
  4. 今後その登録を更新するたびに (チャネルの更新、タグの変更など)、Create または Update Registration を再度呼び出すだけです。

以下のペイロードで正常に再生できました。

<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
  <title type="text"></title>
  <updated>2014-10-21T23:57:08Z</updated>
  <content type="application/atom+xml;type=entry;charset=utf-8">
    <WindowsTemplateRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
      <Tags>t1,t2</Tags>
      <ChannelUri>https://db3.notify.windows.com/?token=AwYAAABXiUp%2bD8v1%2bVfWbWLr3FZ3rQcJtPkUgFwaiGZus4GbtkM8zbZ6uQt1NKXpC4FOtYWHDxXvBb3FkoefaozvCYTFiDjhdb3jDuORUDY8zBlkGw1MxY0QjrH7G0fFbW0RXgo%3d</ChannelUri>
      <BodyTemplate><![CDATA[<?xml version="1.0" encoding="utf-16"?><root></root>]]></BodyTemplate>
      <WnsHeaders>
        <WnsHeader>
          <Header>X-WNS-Type</Header>
          <Value>wns/raw</Value>
        </WnsHeader>
      </WnsHeaders>
      <TemplateName>MyTemplate</TemplateName>
    </WindowsTemplateRegistrationDescription>
  </content>
</entry>
于 2014-10-22T00:20:00.603 に答える