使用PHP的GCM:php函数中的未经授权的错误

时间:2013-10-15 09:55:34

标签: php curl google-cloud-messaging

我正在使用以下代码使用GCM将数据发送到我的设备。

// Replace with real client registration IDs 
$registrationIDs = array( $regID );

// 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 ) );

// Execute post
$result = curl_exec($ch);

// Close connection
curl_close($ch);

echo $result;

这有效,我收到设备上的数据,但是一旦我把代码放在功能标签之间:

function sendMessage($regID, $message) {
//CODE above
}

$regID = "XXXXXX";
$message = "Dit is een test.";

sendMessage($regID, $message);

我有以下错误:

未经授权 错误401

2 个答案:

答案 0 :(得分:0)

行上的语法错误,你忘了在下面的行中加分号,改变

$regID = "XXXXXX"

$regID = "XXXXXX";

答案 1 :(得分:0)

也许您的$apiKey变量是在sendMessage函数之外定义的,因此函数无法访问。

您需要添加

global $apiKey;

sendMessage

的开头