2012-05-01 5 views
0

안녕하세요 제가 PHP로 c2dm에 대한 코드를 쓰고 있어요 이것은 Drupal 모듈의 코드입니다 내 문제는 내 localhost "wamp"서버에서 작동하지만 내 centos 5에서 사용하려고하면 서버에서 var_dump ($ response)가 bool (false)을 반환하고 내 도메인이 인증되었으며 컬이 내 서버에서 잘 작동하는 경우 제 경우에 대한 해결책이 있습니까?PHP는 c2dm 코드가 false로 응답

function push_notifications_c2dm_token() { 
    $data = array(
    'Email'   => PUSH_NOTIFICATIONS_C2DM_USERNAME, 
    'Passwd'  => PUSH_NOTIFICATIONS_C2DM_PASSWORD, 
    'accountType' => 'HOSTED_OR_GOOGLE', 
    'source'  => 'Company-AppName-Version', 
    'service'  => 'ac2dm', 
); 

    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, PUSH_NOTIFICATIONS_C2DM_CLIENT_LOGIN_ACTION_URL); 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($curl, CURLOPT_POST, TRUE); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); 
    $response = curl_exec($curl); 
    var_dump($response); die(); 
    curl_close($curl); 

    // Get the auth token. 
    preg_match("/Auth=([a-z0-9_\-]+)/i", $response, $matches); 
    $auth_token = $matches[1]; 

    if (!$auth_token) { 
    watchdog('push_notifications', 'Google C2DM Server did not provide an authentication token.', NULL, WATCHDOG_ERROR); 
    } 
    else { 
    return $auth_token; 
    } 
} 

답변

1

당신은 당신의 코드에서 문제를 찾기 위해 curl_error() (http://www.php.net/manual/en/function.curl-error.php)를 사용할 수 있습니다. curl_exec()에 의해 반환 된 false boolean은 문제를 해결하기에 충분한 정보를 제공하지 않습니다.

+0

감사합니다.이 오류는 "프로토콜 https가 지원되지 않거나 libcurl에서 비활성화 됨"입니다. 어떻게 해결할 수 있습니까? –

+0

centos 5 서버가 vps 또는 전용 서버 인 경우 완전히 관리 할 수 ​​있습니다. https 프로토콜은 libcurl PHP 라이브러리에 있습니다. 나는 이것을하는 방법을 모른다, 나는 구글이 당신을 도울 수 있다고 생각한다;) –

+0

그것의 헌신적 인 서버와 나는 그것을 옳은 길에 넣어 줘서 고마워. :) –