define('CLIENT_SECRET', 'XXXXXXXXXXXXXXXXXXXXXXXX');
session_start();
if (isset($_GET['code'])) {
    $code = $_GET['code'];
    // Exchange the authorization code for an access token.
    $curl = new Curl();
    $curl->post('https://accounts.google.com/o/oauth2/token', array('code' => $code, 'client_id' => CLIENT_ID, 'client_secret' => CLIENT_SECRET, 'redirect_uri' => implode('', array(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https' : 'http', '://', $_SERVER['SERVER_NAME'], $_SERVER['SCRIPT_NAME'])), 'grant_type' => 'authorization_code'));
    if ($curl->error) {
        echo $curl->response->error . ': ' . $curl->response->error_description;
        exit;
    }
    $_SESSION['access_token'] = $curl->response->access_token;
    header('Location: ?');
} elseif (!empty($_SESSION['access_token']) && !isset($_GET['retry'])) {
    // Use the access token to retrieve the profile.
    $curl = new Curl();
    $curl->setHeader('Content-Type', 'application/json');
    $curl->setHeader('Authorization', 'OAuth ' . $_SESSION['access_token']);
    $curl->get('https://www.googleapis.com/plus/v1/people/me');
    if ($curl->error) {
        echo 'Error ' . $curl->response->error->code . ': ' . $curl->response->error->message . '.<br />';
        echo '<a href="?retry">Retry?</a>';
        exit;
    }
    echo 'Hi ' . $curl->response->displayName . '.';
} else {
    $curl = new Curl();
    $curl->get('https://accounts.google.com/o/oauth2/auth', array('scope' => 'https://www.googleapis.com/auth/plus.me', 'redirect_uri' => implode('', array(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https' : 'http', '://', $_SERVER['SERVER_NAME'], $_SERVER['SCRIPT_NAME'])), 'response_type' => 'code', 'client_id' => CLIENT_ID, 'approval_prompt' => 'force'));
    $url = $curl->responseHeaders['Location'];
    echo '<a href="' . $url . '">Continue</a>';
}
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
// Retrieve first N pages of search results.
$pages = 10;
$q = 'coffee';
$curl = new Curl('https://www.example.com/search');
for ($i = 1; $i <= $pages; $i++) {
    // https://www.example.com/search?q=coffee&page=N
    $curl->get(array('q' => $q, 'page' => $i));
}
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
define('API_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXX');
define('API_SECRET', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('OAUTH_ACCESS_TOKEN', 'XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('OAUTH_TOKEN_SECRET', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
$woeid = '2487956';
$oauth_data = array('id' => $woeid, 'oauth_consumer_key' => API_KEY, 'oauth_nonce' => md5(microtime() . mt_rand()), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_timestamp' => time(), 'oauth_token' => OAUTH_ACCESS_TOKEN, 'oauth_version' => '1.0');
$request_values = $oauth_data;
ksort($request_values);
$url = 'https://api.twitter.com/1.1/trends/place.json';
$request = implode('&', array('GET', rawurlencode($url), rawurlencode(http_build_query($request_values, '', '&', PHP_QUERY_RFC3986))));
$key = implode('&', array(rawurlencode(API_SECRET), rawurlencode(OAUTH_TOKEN_SECRET)));
$oauth_data['oauth_signature'] = base64_encode(hash_hmac('sha1', $request, $key, true));
$authorization = array();
foreach ($oauth_data as $key => $value) {
    $authorization[] = $key . '="' . rawurlencode($value) . '"';
}
$authorization = 'Authorization: OAuth ' . implode(', ', $authorization);
$curl = new Curl();
$curl->setOpt(CURLOPT_HTTPHEADER, array($authorization));
$curl->get($url, array('id' => $woeid));
echo 'Current trends:' . "\n";
foreach ($curl->response['0']->trends as $trend) {
    echo '- ' . $trend->name . "\n";
}
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
$address = 'Paris, France';
$curl = new Curl();
$curl->get('http://maps.googleapis.com/maps/api/geocode/json', array('address' => $address));
if ($curl->response->status === 'OK') {
    $result = $curl->response->results['0'];
    echo $result->formatted_address . ' is located at ' . 'latitude ' . $result->geometry->location->lat . ' and ' . 'longitude ' . $result->geometry->location->lng . '.';
}
Exemple #5
0
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
// curl \
//     -X POST \
//     -d "id=1&content=Hello+world%21&date=2015-06-30+19%3A42%3A21" \
//     "https://httpbin.org/post"
$data = array('id' => '1', 'content' => 'Hello world!', 'date' => date('Y-m-d H:i:s'));
$curl = new Curl();
$curl->post('https://httpbin.org/post', $data);
var_dump($curl->response->form);
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
define('MAILCHIMP_API_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXX');
$parts = explode('-', MAILCHIMP_API_KEY);
define('MAILCHIMP_BASE_URL', 'https://' . $parts['1'] . '.api.mailchimp.com/2.0/');
$curl = new Curl();
$curl->get(MAILCHIMP_BASE_URL . '/lists/list.json', array('apikey' => MAILCHIMP_API_KEY));
if ($curl->response->total === 0) {
    echo 'No lists found';
    exit;
}
$lists = $curl->response->data;
$list = $lists['0'];
$curl->post(MAILCHIMP_BASE_URL . '/lists/subscribe.json', array('apikey' => MAILCHIMP_API_KEY, 'id' => $list->id, 'email' => array('email' => '*****@*****.**')));
if ($curl->error) {
    echo $curl->response->name . ': ' . $curl->response->error . "\n";
} else {
    echo 'Subscribed ' . $curl->response->email . '.' . "\n";
}
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
define('INSTAGRAM_CLIENT_ID', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('INSTAGRAM_CLIENT_SECRET', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
session_start();
$redirect_uri = implode('', array(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https' : 'http', '://', $_SERVER['SERVER_NAME'], $_SERVER['SCRIPT_NAME']));
if (isset($_GET['code'])) {
    $code = $_GET['code'];
    $curl = new Curl();
    $curl->post('https://api.instagram.com/oauth/access_token', array('client_id' => INSTAGRAM_CLIENT_ID, 'client_secret' => INSTAGRAM_CLIENT_SECRET, 'grant_type' => 'authorization_code', 'redirect_uri' => $redirect_uri, 'code' => $code));
    if ($curl->error) {
        echo $curl->response->error_type . ': ' . $curl->response->errorMessage . '<br />';
        echo '<a href="?">Try again?</a>';
        exit;
    }
    $_SESSION['access_token'] = $curl->response->access_token;
}
if (isset($_SESSION['access_token'])) {
    $curl = new Curl();
    $curl->get('https://api.instagram.com/v1/media/popular', array('access_token' => $_SESSION['access_token']));
    foreach ($curl->response->data as $media) {
        echo '<a href="' . $media->link . '" target="_blank">' . '<img alt="" src="' . $media->images->thumbnail->url . '" />' . '</a>';
    }
} else {
    header('Location: https://api.instagram.com/oauth/authorize/?' . http_build_query(array('client_id' => INSTAGRAM_CLIENT_ID, 'redirect_uri' => $redirect_uri, 'response_type' => 'code')));
    exit;
}
Exemple #8
0
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
// curl -X PUT -d "id=1&first_name=Zach&last_name=Borboa" "https://httpbin.org/put"
$curl = new Curl();
$curl->put('https://httpbin.org/put', array('id' => 1, 'first_name' => 'Zach', 'last_name' => 'Borboa'));
echo 'Data server received via PUT:' . "\n";
var_dump($curl->response->form);
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
define('API_KEY', '');
define('API_SECRET', '');
$url = 'https://coinbase.com/api/v1/account/balance';
$nonce = (int) (microtime(true) * 1000000.0);
$message = $nonce . $url;
$signature = hash_hmac('sha256', $message, API_SECRET);
$curl = new Curl();
$curl->setHeader('ACCESS_KEY', API_KEY);
$curl->setHeader('ACCESS_SIGNATURE', $signature);
$curl->setHeader('ACCESS_NONCE', $nonce);
$curl->get($url);
echo 'My current account balance at Coinbase is ' . $curl->response->amount . ' ' . $curl->response->currency . '.' . "\n";
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
function construct_url($photo, $size = 's', $ext = 'jpg')
{
    $url = 'http://farm' . $photo->farm . '.staticflickr.com/' . $photo->server . '/' . $photo->id . '_' . $photo->secret . '_' . $size . '.' . $ext;
    return $url;
}
define('FLICKR_API_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
$data = array('method' => 'flickr.photos.search', 'api_key' => FLICKR_API_KEY, 'text' => 'happy', 'sort' => 'interestingness-desc', 'safe_search' => '3', 'format' => 'json', 'nojsoncallback' => '1');
$curl = new Curl();
$curl->get('https://api.flickr.com/services/rest/', $data);
foreach ($curl->response->photos->photo as $photo) {
    echo '<img alt="" src="' . construct_url($photo) . '" height="75" width="75" />';
}
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
define('GRATIPAY_USERNAME', 'XXXXXXXXXX');
define('GRATIPAY_API_KEY', 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX');
$data = array(array('username' => 'user' . mt_rand(), 'platform' => 'gratipay', 'amount' => '0.02'), array('username' => 'user' . mt_rand(), 'platform' => 'gratipay', 'amount' => '0.02'));
$curl = new Curl();
$curl->setHeader('Content-Type', 'application/json');
$curl->setBasicAuthentication(GRATIPAY_API_KEY);
$curl->post('https://gratipay.com/' . GRATIPAY_USERNAME . '/tips.json', json_encode($data));
foreach ($curl->response as $tip) {
    echo $tip->amount . ' given to ' . $tip->username . '.' . "\n";
}
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
define('API_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXX');
define('API_SECRET', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('OAUTH_ACCESS_TOKEN', 'XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('OAUTH_TOKEN_SECRET', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
$status = 'I love php curl class. https://github.com/php-curl-class/php-curl-class';
$oauth_data = array('oauth_consumer_key' => API_KEY, 'oauth_nonce' => md5(microtime() . mt_rand()), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_timestamp' => time(), 'oauth_token' => OAUTH_ACCESS_TOKEN, 'oauth_version' => '1.0', 'status' => $status);
$url = 'https://api.twitter.com/1.1/statuses/update.json';
$request = implode('&', array('POST', rawurlencode($url), rawurlencode(http_build_query($oauth_data, '', '&', PHP_QUERY_RFC3986))));
$key = implode('&', array(API_SECRET, OAUTH_TOKEN_SECRET));
$oauth_data['oauth_signature'] = base64_encode(hash_hmac('sha1', $request, $key, true));
$data = http_build_query($oauth_data, '', '&');
$curl = new Curl();
$curl->post($url, $data);
echo 'Posted "' . $curl->response->text . '" at ' . $curl->response->created_at . '.' . "\n";
Exemple #13
0
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
// Retrieve first N pages of search results.
$pages = 10;
$q = 'coffee';
$curl = new Curl();
$curl->setURL('https://www.example.com/search');
for ($i = 1; $i <= $pages; $i++) {
    // https://www.example.com/search?q=coffee&page=N
    $curl->get(array('q' => $q, 'page' => $i));
}
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
$myfile = curl_file_create('cats.jpg', 'image/png', 'test_name');
$curl = new Curl();
$curl->post('https://httpbin.org/post', array('myfile' => $myfile));
if ($curl->error) {
    echo 'Error: ' . $curl->errorMessage . "\n";
} else {
    echo 'Success' . "\n";
}
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
$curl = new Curl();
$curl->download('https://php.net/images/logos/php-med-trans.png', function ($instance, $tmpfile) {
    $save_to_path = '/tmp/' . basename($instance->url);
    $fh = fopen($save_to_path, 'wb');
    stream_copy_to_stream($tmpfile, $fh);
    fclose($fh);
});
Exemple #16
0
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
$curl = new Curl();
$curl->progress(function ($client, $download_size, $downloaded, $upload_size, $uploaded) {
    if ($download_size === 0) {
        return;
    }
    $percent = floor($downloaded * 100 / $download_size);
    echo ' ' . $percent . '%' . "\r";
});
$curl->download('https://php.net/distributions/manual/php_manual_en.html.gz', '/tmp/php_manual_en.html.gz');
Exemple #17
0
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
// curl \
//     -X POST \
//     -d "{"id":"1","content":"Hello world!","date":"2015-06-30 19:42:21"}" \
//     "https://httpbin.org/post"
$data = json_encode(array('id' => '1', 'content' => 'Hello world!', 'date' => date('Y-m-d H:i:s')));
$curl = new Curl();
$curl->setHeader('Content-Type', 'application/json');
$curl->post('https://httpbin.org/post', $data);
var_dump($curl->response->json);
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
$curl = new Curl();
$curl->download('https://php.net/images/logos/php-med-trans.png', '/tmp/php-med-trans.png');
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
$curl = new Curl();
$curl->progress(function ($client, $download_size, $downloaded, $upload_size, $uploaded) {
    if ($download_size === 0) {
        return;
    }
    // Display a progress bar: xxx% [=======>             ]
    $progress_size = 40;
    $fraction_downloaded = $downloaded / $download_size;
    $dots = round($fraction_downloaded * $progress_size);
    printf('%3.0f%% [', $fraction_downloaded * 100);
    $i = 0;
    for (; $i < $dots - 1; $i++) {
        echo '=';
    }
    echo '>';
    for (; $i < $progress_size - 1; $i++) {
        echo ' ';
    }
    echo ']' . "\r";
});
$curl->complete(function ($instance) {
    echo "\n" . 'download complete' . "\n";
});
$curl->download('https://php.net/distributions/manual/php_manual_en.html.gz', '/tmp/php_manual_en.html.gz');
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
$curl = new Curl();
$curl->get('https://coinbase.com/api/v1/prices/spot_rate');
echo 'The current price of bitcoin at Coinbase is ' . '$' . $curl->response->amount . ' ' . $curl->response->currency . '.' . "\n";
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
$curl = new Curl();
$curl->get('http://backend.deviantart.com/rss.xml', array('q' => 'boost:popular in:photography/people/fashion', 'type' => 'deviation'));
foreach ($curl->response->channel->item as $entry) {
    $thumbnails = $entry->children('http://search.yahoo.com/mrss/')->thumbnail;
    foreach ($thumbnails as $thumbnail) {
        $img = $thumbnail->attributes();
        echo '<a href="' . $entry->link . '">' . '<img alt="" src="' . $img->url . '" height="' . $img->height . '" width="' . $img->width . '" />' . '</a>';
    }
}
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
define('INSTAGRAM_CLIENT_ID', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
$curl = new Curl();
$curl->get('https://api.instagram.com/v1/media/search', array('client_id' => INSTAGRAM_CLIENT_ID, 'lat' => '37.8296', 'lng' => '-122.4832'));
foreach ($curl->response->data as $media) {
    $image = $media->images->low_resolution;
    echo '<img alt="" src="' . $image->url . '" width="' . $image->width . '" height="' . $image->height . '" />';
}
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
$video_ids = array('9bZkp7q19f0', '_OBlgSz8sSM', 'uelHwf8o7_U', 'KQ6zr6kCPj8', 'ASO_zypdnsQ', 'pRpeEdMmmQ0');
foreach ($video_ids as $video_id) {
    $curl = new Curl();
    $curl->get('https://gdata.youtube.com/feeds/api/videos/' . $video_id . '?alt=json');
    echo '"' . $curl->response->entry->title->{'$t'} . '" has ' . number_format($curl->response->entry->{'yt$statistics'}->viewCount) . ' views.' . "\n";
}
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
$data = array();
if (isset($_GET['after'])) {
    $data['after'] = $_GET['after'];
}
$curl = new Curl();
$curl->get('http://www.reddit.com/r/pics/top/.json', $data);
echo '<ul>';
foreach ($curl->response->data->children as $result) {
    $pic = $result->data;
    echo '<li>' . '<a href="' . $pic->url . '" target="_blank">' . $pic->title . '<br />' . '<img alt="" src="' . $pic->thumbnail . '" />' . '</a> ' . $pic->score . ' pts ' . $pic->num_comments . ' comments by ' . $pic->author . '</li>';
}
echo '</ul>';
echo '<a href="?after=' . $curl->response->data->after . '">Next</a>';
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
define('YOUTUBE_API_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
$playlistId = 'RDHJb0VYVtaNc';
$curl = new Curl();
$curl->get('https://www.googleapis.com/youtube/v3/playlistItems', array('key' => YOUTUBE_API_KEY, 'maxResults' => '50', 'part' => 'snippet', 'playlistId' => $playlistId));
echo 'Songs in this playlist:' . "\n";
foreach ($curl->response->items as $item) {
    echo $item->snippet->title . "\n" . 'https://www.youtube.com/watch?v=' . $item->snippet->resourceId->videoId . "\n" . "\n";
}
<?php

require '../src/Curl/Curl.php';
use ZzhhCurl\Curl;
$content = <<<EOF
<?php
echo 'hello, world';
EOF;
$curl = new Curl();
$curl->post('https://api.github.com/gists', json_encode(array('description' => 'PHP-Curl-Class test.', 'public' => 'true', 'files' => array('Untitled.php' => array('content' => $content)))));
echo 'Gist created at ' . $curl->response->html_url . "\n";