За последние 24 часа нас посетил 18221 программист и 1596 роботов. Сейчас ищут 925 программистов ...

Короткий URL (GOO.GL + Curl)

Тема в разделе "PHP для новичков", создана пользователем sharikov, 13 янв 2014.

  1. sharikov

    sharikov Зэк
    [ БАН ]

    С нами с:
    21 сен 2012
    Сообщения:
    10
    Симпатии:
    0
    Промучился полдня и решил задать вопрос на форуме.
    Задача: получить короткий URL через сервис GOO.GL с помощью Curl.
    Есть:
    1.$myURL = "http://ya.ru"; // ссылка которую нужно сократить
    2.$key ="AIzaSyDLNXNHh_X1U3bPFL7jsfOnUcGO4FJifLk"; // ключ API GOO.GL

    Далее начинаются танцы с curl_setopt + юзер агент и прочие наборы настроек.
    Но к сожалению ни как не смог прийти к рабочему коду.
    И самое главное не могу понять в чем ошибка.
    Очень нужна ваша помощь, что бы затем сравнить со своей писаниной и понять, где "я дурак" ...
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    исправил ключ, чтобы не могли использовать его другие люди
     
  3. sharikov

    sharikov Зэк
    [ БАН ]

    С нами с:
    21 сен 2012
    Сообщения:
    10
    Симпатии:
    0
    Да Бог с ними с этим ключем ... я реально в цикл уже вошел (одни и те же действия по кругу делаю), уже до кодировок файлов дошло.
    Вот "грязный код" ... может кто то хоть намекнет?
    Код (Text):
    1. $my_url = "http://yandex.ru";
    2. $access_key = "**********************************************";
    3. $my_headers = array(
    4. 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0',
    5. 'Content-Type: application/json');
    6. $data = json_encode(array("longUrl"=>$my_url));
    7. $data = array("longUrl"=>$my_url);
    8. $googlurl = "https://www.googleapis.com/urlshortener/v1/url?key=".$access_key;
    9. $googlurl = urlencode($googlurl);
    10. $ch = curl_init();  
    11. curl_setopt($ch, CURLOPT_URL,$googlurl);                  
    12. curl_setopt($ch, CURLOPT_VERBOSE,1);                    
    13. curl_setopt($ch, CURLOPT_HEADER,0);                      
    14. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    15. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    16. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  
    17. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
    18. curl_setopt($ch, CURLOPT_POST, true);
    19. curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    20. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    21. curl_setopt($ch, CURLOPT_HTTPHEADER, $my_headers);
    22. $result = curl_exec($ch);
    23. curl_close($ch);  
    24. echo $result;  
    25. var_dump(json_decode($result));
    26. var_dump(json_decode($result, true));
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
  5. sharikov

    sharikov Зэк
    [ БАН ]

    С нами с:
    21 сен 2012
    Сообщения:
    10
    Симпатии:
    0
    Благодарю Вас mkramer за предложение!
    Хотелось бы "решить с помощью Curl", он для этих целей и предусмотрен в принципе.
    А еще больше хочу понять, в чем я затупил ...

    P.S.(Сижу ковыряю этот курл и ищу свою же ошибку ... пока не нашел ...)

    Добавлено спустя 13 минут 46 секунд:
    Всем спасибо! Вопрос решен!