2013-04-06 221 views
1

我的一些代碼在我的本地主機上正常工作,但是當我將它全部移到我的服務器時,它似乎無法工作。無法通過GCM發送PUSH通知

我的服務器在防火牆後面,所以我決定使用PHP腳本來使用GCM。再次,我測試了所有本地主機,它的工作原理,但在我的服務器上,沒有任何東西被髮送。

這裏是我的PHP腳本:

<?php 
include('tools.php'); 
// Replace with real BROWSER API key from Google APIs 
$apiKey = "xxxx"; 
// Replace with real client registration IDs 
//$registrationIDs = array($_POST['devices']); 
$registrationIDs = $_POST['devices']; 
$proxy = 'http://proxy.vmsrv.redbrick.dcu.ie:3128'; 

// Message to be sent 
$message = $_POST['message']; 

// Set POST variables 
$url = 'https://android.googleapis.com/gcm/send'; 

$fields = array(
       'registration_ids' => $registrationIDs, 
       'data'    => array("message" => $message), 
       ); 

$headers = array( 
        'Authorization: key=' . $apiKey, 
        'Content-Type: application/json' 
       ); 

// Open connection 
$ch = curl_init(); 

// Set the url, number of POST vars, POST data 
curl_setopt($ch, CURLOPT_URL, $url); 

curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 
curl_setopt($ch, CURLOPT_PROXY, $proxy); 
// Execute post 
$result = curl_exec($ch); 

// Close connection 
curl_close($ch); 

print_as_json($result); 

// Report all PHP errors 
error_reporting(-1); 
?> 

輸出的唯一我在控制檯中看到我的Java程序之後調用的腳本是:

[java] DB: Result: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, string given in /var/www/tools.php on line 5[] 

反正我可以嘗試得到一些信息回來找出問題是什麼?

編輯 tools.php

<?php 

function print_as_json($result) { 
    $all = array(); 
    while($r = mysql_fetch_assoc($result)) { 
     $all[] = $r; 
    } 
    echo(json_encode($all)); 
} 


?> 
+0

您的tools.php文件的外觀如何? – 2013-04-06 19:52:06

+0

現在更新後的帖子。 – TomSelleck 2013-04-06 19:59:39

回答

1

刪除線

print_as_json($result); 

,並使用簡單的回聲來代替。

echo $result; 

或者你可能想嘗試看看它是什麼類型的對象:

var_dump($result); 

我不知道什麼$結果如下。如果是json字符串,則可以將其轉換爲數組:

$array = json_decode($result); 
+0

啊,我得到一個發件人不匹配的錯誤,謝謝! – TomSelleck 2013-04-07 10:23:47