Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用Parse将相同的通知推送到多个Android设备_Php_Android_Parse Platform - Fatal编程技术网

在PHP中使用Parse将相同的通知推送到多个Android设备

在PHP中使用Parse将相同的通知推送到多个Android设备,php,android,parse-platform,Php,Android,Parse Platform,我想使用PHP中的Parse向多个Android设备发送通知。为此,我遵循了上面给出的方法,但这只为一个设备提供了解决方案。因此,我创建了一个包含该方法的循环,并在包含objectid的数组中迭代。然而,它也不起作用。我也查看了这个网站,但没有找到想要的解决方案。请帮忙 这是代码 for($i=0;$i<count($devicesArray);$i++) { $target_device = $devicesArray[$i]; // using objec

我想使用PHP中的Parse向多个Android设备发送通知。为此,我遵循了上面给出的方法,但这只为一个设备提供了解决方案。因此,我创建了一个包含该方法的循环,并在包含
objectid
数组中迭代。然而,它也不起作用。我也查看了这个网站,但没有找到想要的解决方案。请帮忙

这是代码

  for($i=0;$i<count($devicesArray);$i++)
    {
        $target_device = $devicesArray[$i];  // using object Id of target Installation.
        $push_payload = json_encode(array(
                "where" => array(
                        "objectId" => $target_device,
                ),
                "data" => array(
                        "alert" => "New message received in ".$groupName." ."
                )
            ));

            $rest = curl_init();
            curl_setopt($rest,CURLOPT_URL,$url);
            curl_setopt($rest,CURLOPT_PORT,443);
            curl_setopt($rest,CURLOPT_POST,1);
            curl_setopt($rest,CURLOPT_POSTFIELDS,$push_payload);
            curl_setopt($rest,CURLOPT_HTTPHEADER,
                    array("X-Parse-Application-Id: " . $appId,
                            "X-Parse-REST-API-Key: " . $restKey,
                            "Content-Type: application/json"));

            $response = curl_exec($rest);
    } 
$i=0;$i数组的
(
“objectId”=>$target\u设备,
),
“数据”=>数组(
“警报”=>“在“$groupName”中收到新消息。”
)
));
$rest=curl_init();
curl_setopt($rest,CURLOPT_URL,$URL);
curl_setopt($rest,CURLOPT_端口,443);
卷曲设置($rest,卷曲设置,1);
curl_setopt($rest、CURLOPT_POSTFIELDS、$push_有效载荷);
curl_setopt($rest,CURLOPT_HTTPHEADER,
数组(“X-Parse-Application-Id:”.$appId,
“X-Parse-REST-API-Key:”.$restKey,
“内容类型:应用程序/json”);
$response=curl_exec($rest);
} 
$devicesArray
包含对象ID,而
循环的
中的代码在上述链接中给出。问题是通知只发送到一个设备,但我希望它发送到所有设备。下面是Parse dashboard的快照


这里的“1”和“0”是发送的推送次数。

我想你可以试试下面的方法。我对parse.com没有太多的经验,所以可能
$in
只是
in
或者你根本不需要它,也许你可以试试:

$push_payload = json_encode(array(
    "where" => array(
            "deviceToken" => array( '$in' => array( "deviceToken_1", "deviceToken_2", "deviceToken_3" ) )
    ),
    "data" => array(
            "alert" => "New message received in ".$groupName." ."
    )
));
而不是
数组('$in'=>数组(“deviceToken_1”、“deviceToken_2”、“deviceToken_3”)

您可以试试这个:

array( 'in' => array( "deviceToken_1", "deviceToken_2", "deviceToken_3" ) )
array( array( "deviceToken_1", "deviceToken_2", "deviceToken_3" ) )
array(  "deviceToken_1", "deviceToken_2", "deviceToken_3" )
或是:

array( 'in' => array( "deviceToken_1", "deviceToken_2", "deviceToken_3" ) )
array( array( "deviceToken_1", "deviceToken_2", "deviceToken_3" ) )
array(  "deviceToken_1", "deviceToken_2", "deviceToken_3" )
或只是:

array( 'in' => array( "deviceToken_1", "deviceToken_2", "deviceToken_3" ) )
array( array( "deviceToken_1", "deviceToken_2", "deviceToken_3" ) )
array(  "deviceToken_1", "deviceToken_2", "deviceToken_3" )

请发布您的代码,并向我们指出issue@swidmann我已经添加了我的代码。请现在检查。你的设备有设备令牌吗?@swidmann,是的,我有设备令牌令牌。不过,设备令牌不存储在数据库中,但对象id是。这就是为什么我需要一个解决方案,允许我只使用对象ID发送通知。很抱歉,我刚刚回答了这个问题,因为您的评论:“是的,我有设备令牌”。也许你可以和频道合作?