2012-05-22 30 views
2

因此,我想通过Urban Airship定位一个特定设备令牌,但无论我做什么,我的所有设备都会收到针对特定设备令牌的消息。城市飞艇 - 将PUSH发送到1个特定设备(设备令牌)

这里是我的PHP代码 - 任何帮助都像往常一样非常感谢!

define('APPKEY','XXXXXXXXXXXXXX'); 
define('PUSHSECRET', 'XXXXXXXXXXXXX '); // Master Secret 
define('PUSHURL', 'https://go.urbanairship.com/api/push/broadcast/'); 


$msg = "This is a message intended for my iPad 3"; 

    $devicetokens = array(); 
$devicetokens[0] = $devicetoken; 

$contents = array(); 
$contents['badge'] = "1"; 
$contents['alert'] = $msg; 
$contents['sound'] = "default"; 

$push = array("aps" => $contents, "device_tokens" =>$devicetokens); 



//var_dump($push); 


$json = json_encode($push); 

$session = curl_init(PUSHURL); 
curl_setopt($session, CURLOPT_USERPWD, APPKEY . ':' . PUSHSECRET); 
curl_setopt($session, CURLOPT_POST, True); 
curl_setopt($session, CURLOPT_POSTFIELDS, $json); 
curl_setopt($session, CURLOPT_HEADER, False); 
curl_setopt($session, CURLOPT_RETURNTRANSFER, True); 
curl_setopt($session, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); 
$content = curl_exec($session); 
//var_dump($content); // just for testing what was sent 

// Check if any error occured 
$response = curl_getinfo($session); 
+0

也许您需要使用基本的推送而不是广播? –

回答

5

您正在使用的URL是广播。要发送通知到特定的设备,您应该使用的网址是'https://go.google.com/url/pi/push/'

+0

对不起,迟到的接受!当我删除广播位时,它像一个魅力。 – PinkFloydRocks

+0

只是一个快速添加,你应该从徽章中删除引号,对我来说它没有显示应用程序图标上的徽章号码,但它一旦我删除引号就开始显示。所以它应该是这样的:$ contents ['badge'] = 1; –

1

城市飞艇提供了示例PHP代码来解决您的问题。

看看这里 - >https://github.com/urbanairship/php-library/blob/master/sample.php

+1

这是404页。可以玩具请帮助我或指导我如何发送推送通知使用PHP到Android设备 –

+0

也许他们用https://github.com/urbanairship/php-library替换为https://github.com/urbanairship/php-library2 ?后面的链接起作用。前者不。 –