2

GmailアカウントのGoogle認証トークンを取得するためにcURLを使用してphpコードを取得しました。に使用していC2DMます。そのスクリプトを実行するたびに、異なる認証トークンを受け取ります。すべての Google アカウントには、時々更新されるだけの認証トークンがあると思いました。しかし、私が言ったように、毎回異なるトークンを取得しています。頻繁に変更される token をどのように管理すればよいですか? トークンを使用するより良い方法は何ですか?

これは、gmail アカウントの AUTH TOKEN を取得するために使用したコードです。

<?php
$ch_cl = curl_init();

curl_setopt($ch_cl, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");
curl_setopt($ch_cl, CURLOPT_FOLLOWLOCATION, true);

$data_cl = array('accountType' => 'GOOGLE',
    'Email' => 'xxxxxx@gmail.com',
    'Passwd' => 'xxxxxxxx',
    'source'=>'xxx-xxx-0.1',
    'service'=>'ac2dm'
);

curl_setopt($ch_cl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch_cl, CURLOPT_POST, true);
curl_setopt($ch_cl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch_cl, CURLOPT_POSTFIELDS, $data_cl);

$cLresponse = curl_exec($ch_cl);
// echo $cLresponse;
curl_close($ch_cl);
//parse the $cLresponse and pick out the clientLogin 'Auth' token
$cLrespArrys = explode("\n", $cLresponse);
$authStr = explode("=", $cLrespArrys[2]);

// echo "return is:<br>" . $authStr[0] . "=" . $authStr[1];

$auth = $authStr[1];

echo "<br><br>" . $auth;
?>

ここで $auth には、発行された AUTH TOKEN が含まれています。

4

1 に答える 1

0

C2DMの場合、認証トークンはC2DMサービスに登録するたびに生成されます。特定のデバイスをC2DMサービスに登録した後に認証トークンを取得すると、C2DMサーバーがそれを更新しない限り、同じ認証トークンを使用して登録済みデバイスと通信できます。C2DMサイトを確認してください。あなたが持っているPHPコードは、おそらく毎回C2DMレジスタサービスを呼び出している可能性があります。これがお役に立てば幸いです。

于 2012-03-28T11:23:19.047 に答える