푸시 알림이 필요한 앱을 개발하고 있습니다. 나는 php로 푸시 알림을 구현하기 위해 다음과 같은 tutorial을 따라갈 것이다. 그래서 프로덕션 인증서를 사용하고 있습니다. ... 왜 PHP 페이지를 시작할 때푸시 알림이 작동하지 않습니다.
<?php
//$token = $_GET['t'];
$token = "xxxxxxxxxxx....xxxxxx";
$who =$_GET['c'];
$notification = $_GET['n'];
$message = 'Hello';
$badge = 3;
$sound = 'default';
$payload = array();
$payload['aps'] = array('alert' => $message, 'badge' => intval($badge), 'sound' => $sound);
$payload = json_encode($payload);
$apns_url = NULL;
$apns_cert = NULL;
$apns_port = 2195;
$apns_url = 'gateway.push.apple.com';
$apns_cert = 'cert-prod.pem';
$stream_context = stream_context_create();
stream_context_set_option($stream_context, 'ssl', 'local_cert', $apns_cert);
$apns = stream_socket_client('ssl://' . $apns_url . ':' . $apns_port, $error, $error_string, 2, STREAM_CLIENT_CONNECT, $stream_context);
$device_tokens = array();
$device_tokens[0] = $token;
foreach($device_tokens as $key=>$device_token)
{
$apns_message = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $device_token)) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apns_message);
}
@socket_close($apns);
@fclose($apns);
?>
아무것도 일어나지 : 이것은 applicationDelegate의 코드입니다 :
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
const unsigned* tokenBytes = [deviceToken bytes];
NSString* tok = [NSString stringWithFormat:@"%08x%08x%08x%08x%08x%08x%08x%08x",
ntohl(tokenBytes[0]), ntohl(tokenBytes[1]), ntohl(tokenBytes[2]),
ntohl(tokenBytes[3]), ntohl(tokenBytes[4]), ntohl(tokenBytes[5]),
ntohl(tokenBytes[6]), ntohl(tokenBytes[7])];
NSLog([NSString stringWithFormat:@"token 1 = %@",tok]);
[[NSUserDefaults standardUserDefaults] setObject:tok forKey:@"token"];
}
- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
NSLog(@"Received notification: %@", userInfo);
}
은이 서버 측 PHP 페이지입니까? 누가 날 도울 수 있죠?
을 토큰이 À aÂÑ5ΔC≤¸u처럼 .. 맞습니까? – JackTurky
PHP 코드에 아무 것도 일어나지 않으면 UbQNâò-ù € xxxxx aÂÑ5ΔC≤¸u 추가 : ( – JackTurky
) NSString * token = [[NSString alloc] initWithBytes : [deviceToken bytes] length : deviceToken.length encoding : NSASCIIStringEncoding] ; – CarlJ