• ベストアンサー

Google API 短縮URLについて

http://logic.moo.jp/data/archives/781.html 上記のサイトを参考にレンタルサーバー上では無事短縮URLを取得できたのですが ローカルのApacheではなぜかNULLが返ってきてしまいます。 Apache/2.2.8 (Win32) PHP/5.2.6 json support enabled json version 1.2.1 cURL support enabled cURL Information libcurl/7.16.0 OpenSSL/0.9.8g zlib/1.2.3 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.2

(null === $obj = json_decode($response = curl_exec($ch)) ↓ (null === $obj = json_decode($response = curl_exec($ch))) 括弧抜けてましたすみません

taro0714
質問者

お礼

括弧を入れたら教えていただいた構文で問題なく短縮URLが取得できました。 本当に助かりました。ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#244856
noname#244856
回答No.1

function get_tiny_url($url = '') {  $ch = curl_init();  curl_setopt_array($ch, array(   CURLOPT_URL => 'https://www.googleapis.com/urlshortener/v1/url?key=xxx',   CURLOPT_POST => true,   CURLOPT_POSTFIELDS => json_encode(array('longUrl' => $url)),   CURLOPT_HTTPHEADER => array('Content-Type: application/json'),   CURLOPT_RETURNTRANSFER => true,   CURLOPT_SSL_VERIFYPEER => false,  ));  if (curl_errno($ch)) {   throw new RuntimeException(curl_error($ch));  }  if (null === $obj = json_decode($response = curl_exec($ch)) {   throw new RuntimeException('Failed on decoding: ' . $response);  }  if (!isset($obj->id)) {   throw new RuntimeException('The response does not contain ID: ' . $response);  }  return $obj->id; } とりあえずこれで原因が分かるかと

taro0714
質問者

補足

ご返信ありがとうございます。 今こちらで試してみたのですが、 if (null === $obj = json_decode($response = curl_exec($ch)) { throw new RuntimeException('Failed on decoding: ' . $response); } の部分で($response = curl_exec($ch))の後の '{' でunexpected というsyntax error が出てしまっています。 見た目の構文は問題なさそうなので何が問題なのか私の知識では分かりませんが、 どこか不備があれば再度教えていただけますでしょうか? よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A