PHP를 사용하여 iOS에 푸시 알림을 보낼 수 없습니다.

하미드 고라시

PHP 및 Yii 프레임 워크를 사용하여 IOS에 푸시 알림을 보내려고합니다. 데이터를 얻고 알림을 보내기 위해 다음과 같은 함수를 만들었습니다. $ data는 등록 ID (장치 토큰)를 유지하기 위해 내부에 메시지와 배열을 포함하는 배열입니다. 내 로컬 호스트에서 실행했지만 알림이 내 장치로 전송되지 않습니다. 그건 그렇고, 내 함수의 출력은 정수 값이며 메시지가 전송되었는지 또는 무엇인지 알 수 없습니다!?

내 코드에 문제가 있습니까?

private function _pushIOS($data)
{
    // Create a connection
    $apnsHost = $this->_notificationUrl;
    $apnsPort = 2195;
    $apnsCert = Yii::app()->controller->createUrl('/').'/my_certificate_dev.pem';

    $streamContext = stream_context_create();
    stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
    $apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);


    if (!$apns)
        exit("Failed to connect: $error $errorString" . PHP_EOL);


    foreach($data['registration_ids'] as $deviceToken) {
        $body = array();
        $body['aps'] = array(
            'alert' => $data['data']['message'],
            'badge' => 1,
            'sound' => 'default'
        );

        // Encode the payload as JSON
        $payload = json_encode($body);

        // Build the binary notification
        $apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;

        // Send it to the server
        $result = fwrite($apns, $apnsMessage, strlen($apnsMessage));
    }

    // Close the socket and connection to the server
    @socket_close($apns);
    fclose($apns);
    return json_decode($result);
}
하미드 고라시

드디어 답을 얻었습니다. 문제는 pem 파일 경로에있었습니다. 작동하려면 함수에 절대 경로를 전달해야합니다. 다음 줄을 바꿔야합니다.

$apnsCert = Yii::app()->controller->createUrl('/').'/my_certificate_dev.pem';

올바른 경로 :

$apnsCert = dirname(Yii::app()->request->scriptFile).'/my_certificate_dev.pem';

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

GoDaddy 서버를 사용하여 laravel 푸시 알림을 iOS 모바일로 보낼 수 없습니다.

분류에서Dev

Azure를 사용하여 Windows Phone 푸시 알림을 보낼 수 없습니다 .NotificationHubs SDK

분류에서Dev

Azure Mobile Services에서 단일 iOS 사용자에게 푸시 알림을 보낼 수 없습니다.

분류에서Dev

GCM을 사용하여 Android로 푸시를 보낼 수 없습니다.

분류에서Dev

임시 배포에서 pushsharp를 통해 푸시 알림을 보낼 수 없습니다.

분류에서Dev

두 개의 다른 앱에 iOS 푸시 알림을 보낼 수 있습니까?

분류에서Dev

iOS : 소리없이 알림 센터로 푸시를 보낼 수 있습니까?

분류에서Dev

iOS Swift-FCM을 사용하여 PHP에서 직접 알림을 보낼 수 있습니까?

분류에서Dev

앱에 Firebase 클라우드 메시징 푸시 알림을 보낼 수 없습니다. 단계를 따랐지만 아무데도 없습니다.

분류에서Dev

AJAX를 사용하여 PHP 문자열에 값을 보낼 수 없습니다.

분류에서Dev

Outlook 2010을 사용하여 암호화 된 메시지를 다른 사람에게 보낼 수 없습니다.

분류에서Dev

Azure Notification Hub에서 App Store 용으로 게시 된 앱에 푸시 알림을 보낼 수 없음

분류에서Dev

Firebase가 플러터 앱을 감지하지 못하고 푸시 알림을 보낼 수 없습니다

분류에서Dev

Spring의 JmsTemplate을 사용하여 JMS 메시지를 activemq Queue에 보낼 수 없습니다.

분류에서Dev

Retrofit 2.0을 사용하여 API 후 데이터에서 원시 json 데이터를 보낼 수 없습니다.

분류에서Dev

PHP에서 json을 사용하는 동안 에코 또는 경고 메시지를 보낼 수 없습니다.

분류에서Dev

PHP에서 json을 사용하는 동안 에코 또는 경고 메시지를 보낼 수 없습니다.

분류에서Dev

player2는 장치에서 Parse를 사용하여 player1에 알림을 보낼 수 있습니까?

분류에서Dev

Django를 사용하여 GCM에서 POST 요청을 보낼 수 없습니다.

분류에서Dev

ajax를 사용하여 값 속성을 서버에 보낼 수 없습니다.

분류에서Dev

nodemailer를 사용하여 nodejs에서 이메일을 보낼 수 없습니다.

분류에서Dev

사용자 등록시 푸시 알림을 보내고 있는데, 등록 된 사용자에게만 알림이 전송됩니다. 앱을 사용하는 모든 사람에게 알림을 보낼 수 있나요?

분류에서Dev

javapns.notification.PushNotificationManager를 사용하여 Android에서 알림을 보낼 수 있습니까?

분류에서Dev

JSON을 사용하여 POST를 보낼 수 없습니다.

분류에서Dev

Xamarin iOS Firebase 클라우드 메시징-푸시 알림-디바이스 토큰으로 테스트 메시지를 보낼 수 없습니다.

분류에서Dev

Delphi에서 Kinvey를 사용하여 클라이언트에게 푸시 알림을 보내시겠습니까?

분류에서Dev

javax를 사용하여 Android에서 Gmail 계정을 사용하여 이메일을 보낼 수 없습니다.

분류에서Dev

php mail () 함수를 사용하여 메일을 보낼 수 없습니다.

분류에서Dev

Java를 사용하여 푸시 알림에서 정수 개수 보내기

Related 관련 기사

  1. 1

    GoDaddy 서버를 사용하여 laravel 푸시 알림을 iOS 모바일로 보낼 수 없습니다.

  2. 2

    Azure를 사용하여 Windows Phone 푸시 알림을 보낼 수 없습니다 .NotificationHubs SDK

  3. 3

    Azure Mobile Services에서 단일 iOS 사용자에게 푸시 알림을 보낼 수 없습니다.

  4. 4

    GCM을 사용하여 Android로 푸시를 보낼 수 없습니다.

  5. 5

    임시 배포에서 pushsharp를 통해 푸시 알림을 보낼 수 없습니다.

  6. 6

    두 개의 다른 앱에 iOS 푸시 알림을 보낼 수 있습니까?

  7. 7

    iOS : 소리없이 알림 센터로 푸시를 보낼 수 있습니까?

  8. 8

    iOS Swift-FCM을 사용하여 PHP에서 직접 알림을 보낼 수 있습니까?

  9. 9

    앱에 Firebase 클라우드 메시징 푸시 알림을 보낼 수 없습니다. 단계를 따랐지만 아무데도 없습니다.

  10. 10

    AJAX를 사용하여 PHP 문자열에 값을 보낼 수 없습니다.

  11. 11

    Outlook 2010을 사용하여 암호화 된 메시지를 다른 사람에게 보낼 수 없습니다.

  12. 12

    Azure Notification Hub에서 App Store 용으로 게시 된 앱에 푸시 알림을 보낼 수 없음

  13. 13

    Firebase가 플러터 앱을 감지하지 못하고 푸시 알림을 보낼 수 없습니다

  14. 14

    Spring의 JmsTemplate을 사용하여 JMS 메시지를 activemq Queue에 보낼 수 없습니다.

  15. 15

    Retrofit 2.0을 사용하여 API 후 데이터에서 원시 json 데이터를 보낼 수 없습니다.

  16. 16

    PHP에서 json을 사용하는 동안 에코 또는 경고 메시지를 보낼 수 없습니다.

  17. 17

    PHP에서 json을 사용하는 동안 에코 또는 경고 메시지를 보낼 수 없습니다.

  18. 18

    player2는 장치에서 Parse를 사용하여 player1에 알림을 보낼 수 있습니까?

  19. 19

    Django를 사용하여 GCM에서 POST 요청을 보낼 수 없습니다.

  20. 20

    ajax를 사용하여 값 속성을 서버에 보낼 수 없습니다.

  21. 21

    nodemailer를 사용하여 nodejs에서 이메일을 보낼 수 없습니다.

  22. 22

    사용자 등록시 푸시 알림을 보내고 있는데, 등록 된 사용자에게만 알림이 전송됩니다. 앱을 사용하는 모든 사람에게 알림을 보낼 수 있나요?

  23. 23

    javapns.notification.PushNotificationManager를 사용하여 Android에서 알림을 보낼 수 있습니까?

  24. 24

    JSON을 사용하여 POST를 보낼 수 없습니다.

  25. 25

    Xamarin iOS Firebase 클라우드 메시징-푸시 알림-디바이스 토큰으로 테스트 메시지를 보낼 수 없습니다.

  26. 26

    Delphi에서 Kinvey를 사용하여 클라이언트에게 푸시 알림을 보내시겠습니까?

  27. 27

    javax를 사용하여 Android에서 Gmail 계정을 사용하여 이메일을 보낼 수 없습니다.

  28. 28

    php mail () 함수를 사용하여 메일을 보낼 수 없습니다.

  29. 29

    Java를 사용하여 푸시 알림에서 정수 개수 보내기

뜨겁다태그

보관