0

これらのチュートリアルに従って、Apple Push Notification Server が通知をデバイスに送信できるようにします。

http://www.raywenderlich.com/3525/apple-push-notification-services-tutorial-part-2

このチュートリアルから MAMP をダウンロードし、「ユーザーの詳細を保存するデータベースを作成」し、「チュートリアルから PushChatServer フォルダーをダウンロード」しました。UDID、デバイス トークン (APNS から)、名前、コードをデータベースに保存しました。今、ローカルホストからプッシュ通知を送信したいと考えています。

デスクトップに .pem ファイル、push.php、push-confi.php を保存しています。チュートリアルから、この部分がわかりません:

PushChatServer ディレクトリには、プッシュ要求を送信するために必要な PHP スクリプトを含むプッシュ フォルダーがあります。これらのファイルは、Web からアクセスできないサーバー上のディレクトリ、つまり DocumentRoot の外部に配置する必要があります。Web サイトの訪問者に秘密鍵をダウンロードさせたくないので、これは重要です。(私たちの MAMP セットアップでは、これは既に処理されています。)

プッシュ フォルダーで最も重要なスクリプトは push.php です。このスクリプトは、サーバー上でバックグラウンド プロセスとして実行する必要があります。送信される新しいプッシュ通知があるかどうかを数秒ごとに確認します。その場合は、それらを Apple プッシュ通知サービスに送信します。

最初に、push.php の設定オプションを含むファイル push_config.php を編集する必要があります。秘密鍵のパスフレーズと、場合によってはデータベースのパスワードを変更する必要がある場合があります。

サーバー API と同様に、プッシュ スクリプトは開発モードまたは運用モードで実行できます。開発モードでは、APNS サンドボックス サーバーと通信し、開発用 SSL 証明書を使用します。開発モードは、アプリのデバッグ ビルドと組み合わせて使用​​する必要があります。アプリのアドホック ビルドと App Store ビルドには、プロダクション モードを使用する必要があります。

Mac で Push フォルダを保持したい場所。APNS 接続を確認するにはどうすればよいですか?

ターミナルから読み取るために、Push フォルダー (Push.php を含む) をディレクトリに配置しました。また、ディレクトリに Application フォルダーを貼り付けました。

ターミナルでこのコマンドを使用するように言われたチュートリアル

$ /Applications/MAMP/bin/php5.2/bin/php push.php development

しかし、MAMPにはこのパスがあります

/Users/creagx/Applications/MAMP/bin/php/php5.5.17/bin/php

Push フォルダーと MAMP を配置する必要がある場所。

.pem ファイルと push.php ファイルをこのパスに保存しました。/Users/gopi/Desktop/APNSsample/push.php 次に、このようなターミナル アプリを使用して、.pem (SSL) を APNS に接続しようとしました。

unknownc42c032e8297:~ name$ cd /Users/creagx/Desktop/APNSsample
unknownc42c032e8297:APNSsample name$ telnet gateway.sandbox.push.apple.com 2195
Trying 17.149.34.66...
Connected to gateway.sandbox.push-apple.com.akadns.net.
Escape character is '^]'.
^C
Connection closed by foreign host.
unknownc42c032e8297:APNSsample name$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert NameAPNCert.pem -key NameAPNKey.pem
Enter pass phrase for NameAPNKey.pem:
CONNECTED(00000003)
depth=1 /C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/C=US/ST=California/L=Cupertino/O=Apple Inc/OU=Internet Services/CN=gateway.sandbox.push.apple.com
   i:/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
 1 s:/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
   i:/O=Entrust.net/OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Certification Authority (2048)
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIEZTCCA02gAwIBAgIESyDhfjANBgkqhkiG9w0BAQUFADCBsTELMAkGA1UEBhMC
VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
Lm5ldC9ycGEgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
KGMpIDIwMDkgRW50cnVzdCwgSW5jLjEuMCwGA1UEAxMlRW50cnVzdCBDZXJ0aWZp
Y2F0aW9uIEF1dGhvcml0eSAtIEwxQzAeFw0xMDA0MTMyMzM0MzNaFw0xMjA1MzEw
MDA0MjdaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAG
A1UEBxMJQ3VwZXJ0aW5vMRIwEAYDVQQKEwlBcHBsZSBJbmMxGjAYBgNVBAsTEUlu
dGVybmV0IFNlcnZpY2VzMScwJQYDVQQDEx5nYXRld2F5LnNhbmRib3gucHVzaC5h
cHBsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM5NngiDMFpGBMmb
8tG2MRhLEdsx553Xjq+5C/c0mtildwhnC1X0LWKUexWdQsMchniac+WnHFSs3YMJ
JJ55kQSB6wqK/WNcxsUn8pMkMsvk3YZFM7TsaKQvFOeieiXCSJVlR3grm3+dilv1
Br+SUqv8JrgU3ijmoQO63vkb8B/hAgMBAAGjggEnMIIBIzALBgNVHQ8EBAMCBaAw
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMDMGA1UdHwQsMCowKKAmoCSG
Imh0dHA6Ly9jcmwuZW50cnVzdC5uZXQvbGV2ZWwxYy5jcmwwMwYIKwYBBQUHAQEE
JzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5lbnRydXN0Lm5ldDBABgNVHSAE
OTA3MDUGCSqGSIb2fQdLAjAoMCYGCCsGAQUFBwIBFhpodHRwOi8vd3d3LmVudHJ1
c3QubmV0L3JwYTAfBgNVHSMEGDAWgBQe8auJBvhJDwEzd+4Ueu4ZfJMoTTAdBgNV
HQ4EFgQUNyg/64Sjw/+b4YOwC8E/c+jemRgwCQYDVR0TBAIwADANBgkqhkiG9w0B
AQUFAAOCAQEAk9Ij+NCp+323+4vBqbA0fT9ZCROptPqNIshY5uEvaWUaW5hsoLUm
fsMJMueqzDaoj4yPD8iCCZq1Mp8tM8WB2mG1zIxTLshlhRgDDUF11IbUUBHv/ZhU
RzXewQD6pazQmsBPuR0vP3mmWbKqmZOiv2yWSGlQmWGW4m6RQwjYYj8UqqFEdinV
g1+qY6/muTpaCiygDjJZBlv9P6bwwP9FB8OJf5tGECvvxXad3PK/oiI77aLTYSVr
SA0oisXCiqcgTKQq5BV5M3fQQ4ZS73aBKLI0wPYc0AASD5WdtPTGTvmEbhO4KeaU
0SL85Prf8uSsDOLvn3656awLz/H/yzrf/g==
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Cupertino/O=Apple Inc/OU=Internet Services/CN=gateway.sandbox.push.apple.com
issuer=/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
---
No client certificate CA names sent
---
SSL handshake has read 2549 bytes and written 2017 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 729CC0899B36143DAC78D40B2C31ECB71C81A3BD8DC5CFD6D71AC7885DD2E63DCD47096E97A1B3AF032A8D7D48BF73DA
    Key-Arg   : None
    Start Time: 1336636910
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
name
closed
unknownc42c032e8297:APNSsample name$ php push.php
Usage: php push.php development|production
unknownc42c032e8297:APNSsample name$ development
-bash: development: command not found
unknownc42c032e8297:APNSsample name$ php push.php development

このようにpush_development.logにAPNS接続ステータスを受け取りました。

2012-05-10T13:32:34+05:30 Push script started (development mode)
2012-05-10T13:32:34+05:30 Exiting with fatal error: exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory' in /Users/name/Desktop/APNSsample/push.php:82
Stack trace:
#0 /Users/creagx/name/APNSsample/push.php(82): PDO->__construct('mysql:host=loca...', 'pushchat', 'name', Array)
#1 /Users/creagx/name/APNSsample/push.php(36): APNS_Push->__construct(Array)
#2 {main}

何を間違えたのか理解できませんか?MAMP のデータベースを使用しています。devicetoken、メッセージ (ペイロード) を MAMP SQL データベースに保存しました。

ターミナル:

unknownc42c032e8297:~ gopi$ cd /Users/gopi/Desktop/APNSsample/
unknownc42c032e8297:APNSsample gopi$ php push.php
Usage: php push.php development|production
unknownc42c032e8297:APNSsample gopi$ php push.php development
unknownc42c032e8297:APNSsample gopi$ 

私の push_development.log ファイルで:

2012-05-10T16:08:12+05:30 Push script started (development mode)
2012-05-10T16:08:12+05:30 Exiting with fatal error: exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory' in /Users/gopi/Desktop/APNSsample/push.php:82
Stack trace:
#0 /Users/gopi/Desktop/APNSsample/push.php(82): PDO->__construct('mysql:host=loca...', 'pushchat', 'gopi', Array)
#1 /Users/gopi/Desktop/APNSsample/push.php(36): APNS_Push->__construct(Array)
#2 {main}
4

1 に答える 1

0

両方の .pem ファイルを同じディレクトリ (デスクトップの場合) にコピーしたら、次のコードをターミナルに貼り付けます。

' cd /Users/gopi/Desktop/APNSSample/ '

Enterキーを押すと、エラーは表示されず、ターミナルに新しい行が表示されるだけです。接続をテストするには、他のコードを貼り付けた後、ターミナルに次のコードを貼り付けます。

「php yourphpfile.php」

Enter キーを押すと、php ファイルが APNS サーバーに到達できたことを示す 3 行のコードが表示されます。

于 2012-05-10T10:33:37.923 に答える