web-dev-qa-db-ja.com

ASP.NETサーバーを使用してiPhoneプッシュ通知を追加する

概要は次のとおりです。

IPhoneアプリにプッシュ通知を追加する必要があります。サーバー側はc#のASP.NETです。

私が望むのは、このプロセスを進めるためのコーチングです。その後、iPhoneプロジェクトとASP.NET Webアプリの一般的なコードを、他の人が学習できるようにステップバイステップの手順とともに投稿します。

ここに私の理解があります:

  1. APNS証明書を申請し、キーチェーンに追加します。 (ASP.NETにこれをもたらす方法がわからない)
  2. IPhoneをregisterForRemoteNotificationWithTypesで登録し、値をサーバーに送信して、DBに保存します。このコードを登録するのは簡単なはずですが、良いサンプルが見つかりません。 (値をASP.NETサーバーに送信しても問題ありません。)
  3. サーバーアプリは、ペイロード文字列を作成し、JSONエンコードを実行し、DBに保存されたデバイストークンを使用して、iPhoneごとに(またはグループ用に)APNSサーバーに送信します。

そのため、追加機能を開発するために、以下のピースがあります。

  • IPhone登録コード

  • IPhoneの登録コードをサーバーに送信し、DBに保存するコード(これは簡単で、すでにこれらの部分があります)。

  • C#のサーバー側APNS連絡先コード。これには、Apple Developer Webサイトで生成された証明書の使用方法も含まれます。

  • また、ペイロードは、サーバーに送り返された結果で回答できる複数選択の質問になりますか?

助けてくれてありがとう。これを他の人のためのチュートリアルに変えます。

38
RickLeinecker

これは私を理解するのに永遠にかかりましたが、私は最終的に人々が残した小さな手がかりからすべてをつなぎ合わせました。開発者ポータルで登録したAPPIDの証明書をダウンロードする必要があります。その証明書をWindowsで使用するには、P12形式に変換する必要があります。 UNIXのこれらのコマンドは最終的に私のためにそれをしました:

ステップ1:

openssl x509 -in aps_developer_identity.cer -inform DER -out aps_developer_identity.pem -outform PEM}

Aps_developer_identity.cerは、ポータルからダウンロードしたファイルです

ステップ2:

openssl pkcs12 -nocerts -out APSCertificates.pem -in APSCertificates.p12

APSCertificates.p12は、Macキーチェーンからエクスポートするファイルです。これは重要です。ポータルからキーチェーンに証明書をインポートする必要があります。 [マイ証明書]で見つけて、開閉用三角ボタンを開き、証明書と秘密キーの両方を強調表示してから、右クリックしてエクスポートします。それらにパスワードを与え、p12ファイルに保存します。

ステップ3:

openssl pkcs12 -export -in aps_developer_identity.pem -out aps_developer_identity.p12 -inkey APSCertificates.pem

キーチェーンで証明書と秘密キーをエクスポートするために使用したパスワードを数回求められ、すべてを再暗号化する新しいパスワードを求められますが、最終的に必要なファイルaps_developer_identity.p12がありますWindowsに移動し、MMCの証明書マネージャーの[個人]セクションと[信頼されたルート]セクションの両方にインポートします。次に、C#でMoonAPNSを使用してPushNotificationクラスを呼び出すと、その証明書へのパスが与えられます。また、デバイストークンからスペースを削除してください。

18

したがって、C#プッシュパーツには、使用できるオープンソースプロジェクトがあり、簡単であり、ここにプッシュ通知を送信するためにライブラリを使用する方法のサンプルコードがあります C#プッシュ通知プロジェクト

基本的に、Appleからプッシュ証明書を取得し、それをプロジェクトにドロップしてC#プロジェクトで開くだけです(例とそれを行う場所は明らかです)。

かなり些細なことのiPhone部分とそこにたくさんの例があります

11
Daniel

オンラインプッシュソリューションをお勧めします。 parse.comを閉じた後、 https://onesignal.com/ を使用しました。REST api。

古い答え:
私は https://parse.com/products/Push を使用しました。REST api。

古い答え:
PushSharp をお勧めします。

Moon-APNSに問題があり、PushSharpに変更しようとしましたが、5分以内に機能しました。 PushSharpは、同じパッケージでAndroidとWindows Phone Pushメッセージをサポートします。そして、NuGetパッケージとして利用可能です。

3

悲しいことに、PushSharpは.NET 4.0のみです。著者には3.5の計画もありません。サーバープロバイダーは3.5のみを許可しているため、これは私にとっての要件です。だから私はMoon-APNSに行かなければならなかった、私はそれがカントー動作するのをまだ見ていません。しかし、私は今日それを実装したばかりであり、明日私の友人はそれをテストします。 Moon-APNSも.NET 4.0ですが、3.5に設定するのは簡単です。 3.5の依存ライブラリをダウンロードして、それらとビオラを含めてください。

1
Elrinth