C2DM Server with PHP 401 Error

by nino » Sat, 12 Feb 2011 06:03:25 GMT

Sponsored Links
 I'm building my own C2DM application right now. I first started with a
small Android application to test the push feature. And it works if I
just call the curl command with the correct settings in my shell.

Now for the server part I wanted to use PHP but as it seems I'm doing
something wrong as I always get a 401 error message when I try to send
a message to the client. First of all the code consists of two parts.
The first curl request asks for the server token. This works I get a
real response from google with a working token!

The second curl request ends up with a 401 error message. Any ideas
what I'm doing wrong?

  $post_params = array ( "Email" => $MY_GOOGLE_ACC, "Passwd" =>
$MY_GOOGLE_PWD, "accountType"=>"GOOGLE", "source=" . $MY_GOOGLE_SRC,
"service=ac2dm" );

  $first = true;
  $data_msg = "";

  foreach ($post_params as $key => $value) {
    if ($first)
      $first = false;
      $data_msg .= "&";

    $data_msg .= urlencode($key) ."=". urlencode($value);

  $x = curl_init("https://www.google.com/accounts/ClientLogin");

  curl_setopt($x, CURLOPT_HEADER, 1);
  curl_setopt($x, CURLOPT_POST, 1);
  curl_setopt($x, CURLOPT_POSTFIELDS, $data_msg);
  curl_setopt($x, CURLOPT_RETURNTRANSFER, 1);
  $data = curl_exec($x);
  $response = $data;

  $authKey = trim(substr($response, 4+strpos($response, "SID=")));

  echo $authKey;
  $collapse_key = 'something';

  $post_params = array ( "registration_id" => $DEVICE_TOKEN,
"collapse_key" =>     $collapse_key, "data.payload"=>"cakephp" );

  $first = true;
  $data_msg = "";


Other Threads

1. Phone Call Simulator App

Suppose I wanted to design a cheap little app which lets you schedule
fake phone calls to yourself, along similar lines as this app:

I'd imagine using an AlarmManager would be suitable for this purpose,
the question is how to generate a fake incoming call screen, complete
with the slide to answer call option. My initial approach, the
AlarmManager should launch a PendingIntent. However, I'm not sure
where to go from here, in particular to get an Activity started which
displays the fake call screen.


2. Edit contact android < 2.x


I know it is possible to add contact via Intent and putExtra with all
infromation you want to add.
Is it possible to update contact with new information by calling Intent with
putExtra with new info?

tnx in advance.

God is Real, unless declared Integer.
J. Allan Toogood, FORTRAN programmer


3. Customize a Android distro boot and laucher

4. I/O streams in android

5. Thread handling problem in Test Case

6. Contacts helper class or simple library?

7. A Mistake in Dev Guide