コード例 #1
0
ファイル: getfollowrequests2.php プロジェクト: 0x27/mrw-code
/**
* Call twitter to get a list of the user's follow requests
* @param string $access_token obtained from get_request_token
* @param string $access_token_secret obtained from get_request_token
* @return response string or empty array on error
*/
function getFollowers($access_token, $access_token_secret)
{
    $retarr = array();
    // return value
    $response = array();
    //$url = 'http://api.twitter.com/1/statuses/update.json';
    $url = 'http://api.twitter.com/1.1/friendships/incoming.json';
    //$params['status'] = $status_message;
    $params['oauth_version'] = '1.0';
    $params['oauth_nonce'] = mt_rand();
    $params['oauth_timestamp'] = time();
    $params['oauth_consumer_key'] = OAUTH_CONSUMER_KEY;
    $params['oauth_token'] = $access_token;
    // compute hmac-sha1 signature and add it to the params list
    $params['oauth_signature_method'] = 'HMAC-SHA1';
    $params['oauth_signature'] = oauth_compute_hmac_sig('GET', $url, $params, OAUTH_CONSUMER_SECRET, $access_token_secret);
    // Pass OAuth credentials in a separate header or in the query string
    $query_parameter_string = oauth_http_build_query($params, true);
    $header = build_oauth_header($params, "Twitter API");
    $headers[] = $header;
    // POST or GET the request
    $request_url = $url . ($query_parameter_string ? '?' . $query_parameter_string : '');
    //logit("tweet:INFO:request_url:$request_url");
    $response = do_get($request_url, 80, $headers);
    // extract successful response
    if (!empty($response)) {
        list($info, $header, $body) = $response;
        if ($body) {
            //logit("tweet:INFO:response:");
            //print(json_pretty_print($body));
        }
        $retarr = $response;
    }
    return $retarr;
}
コード例 #2
0
ファイル: yql.php プロジェクト: S-Berhane/oauth_yahoo
/**
 * Call the Yahoo Contact API
 * @param string $consumer_key obtained when you registered your app
 * @param string $consumer_secret obtained when you registered your app
 * @param string $guid obtained from getacctok
 * @param string $access_token obtained from getacctok
 * @param string $access_token_secret obtained from getacctok
 * @param bool $usePost use HTTP POST instead of GET
 * @param bool $passOAuthInHeader pass the OAuth credentials in HTTP header
 * @return response string with token or empty array on error
 */
function call_yql($consumer_key, $consumer_secret, $querynum, $access_token, $access_token_secret, $usePost = false, $passOAuthInHeader = true)
{
    $retarr = array();
    // return value
    $response = array();
    if ($querynum == 1) {
        $url = 'http://query.yahooapis.com/v1/yql';
        // Show my profile
        $params['q'] = 'select * from social.profile where guid=me';
    } elseif ($querynum == 2) {
        $url = 'http://query.yahooapis.com/v1/yql';
        // Find my friends
        $params['q'] = 'select * from social.connections where owner_guid=me';
    } else {
        // Since this information is public, use the non oauth endpoint 'public'
        $url = 'http://query.yahooapis.com/v1/public/yql';
        // Find all sushi restaurants in SF order by number of ratings desc
        $params['q'] = 'select Title,Address,Rating from local.search where query="sushi" and location="san francisco, ca"|sort(field="Rating.TotalRatings",descending="true")';
    }
    $params['format'] = 'json';
    $params['callback'] = 'cbfunc';
    $params['oauth_version'] = '1.0';
    $params['oauth_nonce'] = mt_rand();
    $params['oauth_timestamp'] = time();
    $params['oauth_consumer_key'] = $consumer_key;
    $params['oauth_token'] = $access_token;
    // compute hmac-sha1 signature and add it to the params list
    $params['oauth_signature_method'] = 'HMAC-SHA1';
    $params['oauth_signature'] = oauth_compute_hmac_sig($usePost ? 'POST' : 'GET', $url, $params, $consumer_secret, $access_token_secret);
    // Pass OAuth credentials in a separate header or in the query string
    if ($passOAuthInHeader) {
        $query_parameter_string = oauth_http_build_query($params, true);
        $header = build_oauth_header($params, "yahooapis.com");
        $headers[] = $header;
    } else {
        $query_parameter_string = oauth_http_build_query($params);
    }
    // POST or GET the request
    if ($usePost) {
        $request_url = $url;
        logit("call_yql:INFO:request_url:{$request_url}");
        logit("call_yql:INFO:post_body:{$query_parameter_string}");
        $headers[] = 'Content-Type: application/x-www-form-urlencoded';
        $response = do_post($request_url, $query_parameter_string, 80, $headers);
    } else {
        $request_url = $url . ($query_parameter_string ? '?' . $query_parameter_string : '');
        logit("call_yql:INFO:request_url:{$request_url}");
        $response = do_get($request_url, 80, $headers);
    }
    // extract successful response
    if (!empty($response)) {
        list($info, $header, $body) = $response;
        if ($body) {
            logit("call_yql:INFO:response:");
            print json_pretty_print($body);
        }
        $retarr = $response;
    }
    return $retarr;
}
コード例 #3
0
/**
 * Call the Yahoo Contact API
 * @param string $consumer_key obtained when you registered your app
 * @param string $consumer_secret obtained when you registered your app
 * @param string $guid obtained from getacctok
 * @param string $access_token obtained from getacctok
 * @param string $access_token_secret obtained from getacctok
 * @param bool $usePost use HTTP POST instead of GET
 * @param bool $passOAuthInHeader pass the OAuth credentials in HTTP header
 * @return response string with token or empty array on error
 */
function callcontact($consumer_key, $consumer_secret, $guid, $access_token, $access_token_secret, $usePost = false, $passOAuthInHeader = true, $_count)
{
    $retarr = array();
    // return value
    $response = array();
    $url = 'http://social.yahooapis.com/v1/user/' . $guid . '/contacts?count=' . $_count;
    $params['format'] = 'xml';
    $params['view'] = 'compact';
    $params['oauth_version'] = '1.0';
    $params['oauth_nonce'] = mt_rand();
    $params['oauth_timestamp'] = time();
    $params['oauth_consumer_key'] = $consumer_key;
    $params['oauth_token'] = $access_token;
    // compute hmac-sha1 signature and add it to the params list
    $params['oauth_signature_method'] = 'HMAC-SHA1';
    //$params['oauth_signature'] =
    // oauth_compute_hmac_sig($usePost? 'POST' : 'GET', $url, $params,
    // $consumer_secret, $access_token_secret);
    echo ',';
    echo $params['oauth_nonce'];
    echo ',';
    echo $params['oauth_timestamp'];
    echo ',';
    echo oauth_compute_hmac_sig($usePost ? 'POST' : 'GET', $url, $params, $consumer_secret, $access_token_secret);
    exit(0);
    // Pass OAuth credentials in a separate header or in the query string
    if ($passOAuthInHeader) {
        $query_parameter_string = oauth_http_build_query($params, true);
        $header = build_oauth_header($params, "yahooapis.com");
        $headers[] = $header;
    } else {
        $query_parameter_string = oauth_http_build_query($params);
    }
    // POST or GET the request
    if ($usePost && 0) {
        $request_url = $url;
        logit("callcontact:INFO:request_url:{$request_url}");
        logit("callcontact:INFO:post_body:{$query_parameter_string}");
        $headers[] = 'Content-Type: application/x-www-form-urlencoded';
        $response = do_post($request_url, $query_parameter_string, 80, $headers);
    } else {
        $request_url = $url . ($query_parameter_string ? '?' . $query_parameter_string : '');
        logit("callcontact:INFO:request_url:{$request_url}");
        $response = do_get($request_url, 80, $headers);
    }
    // extract successful response
    if (!empty($response)) {
        list($info, $header, $body) = $response;
        if ($body) {
            logit("callcontact:INFO:response:");
            print json_pretty_print($body);
        }
        $retarr = $response;
    }
    return $retarr;
}
コード例 #4
0
/**
 * Refresh an access token using an expired request token
 * @param string $consumer_key obtained when you registered your app
 * @param string $consumer_secret obtained when you registered your app
 * @param string $old_access_token obtained previously
 * @param string $old_token_secret obtained previously
 * @param string $oauth_session_handle obtained previously
 * @param bool $usePost use HTTP POST instead of GET (default false)
 * @param bool $useHmacSha1Sig use HMAC-SHA1 signature (default false)
 * @return response string with token or empty array on error
 */
function refresh_access_token($consumer_key, $consumer_secret, $old_access_token, $old_token_secret, $oauth_session_handle, $usePost = false, $useHmacSha1Sig = true, $passOAuthInHeader = true)
{
    $retarr = array();
    // return value
    $response = array();
    $url = 'https://api.login.yahoo.com/oauth/v2/get_token';
    $params['oauth_version'] = '1.0';
    $params['oauth_nonce'] = mt_rand();
    $params['oauth_timestamp'] = time();
    $params['oauth_consumer_key'] = $consumer_key;
    $params['oauth_token'] = $old_access_token;
    $params['oauth_session_handle'] = $oauth_session_handle;
    // compute signature and add it to the params list
    if ($useHmacSha1Sig) {
        $params['oauth_signature_method'] = 'HMAC-SHA1';
        $params['oauth_signature'] = oauth_compute_hmac_sig($usePost ? 'POST' : 'GET', $url, $params, $consumer_secret, $old_token_secret);
    } else {
        $params['oauth_signature_method'] = 'PLAINTEXT';
        $params['oauth_signature'] = oauth_compute_plaintext_sig($consumer_secret, $old_token_secret);
    }
    // Pass OAuth credentials in a separate header or in the query string
    if ($passOAuthInHeader) {
        $query_parameter_string = oauth_http_build_query($params, true);
        $header = build_oauth_header($params, "yahooapis.com");
        $headers[] = $header;
    } else {
        $query_parameter_string = oauth_http_build_query($params);
    }
    // POST or GET the request
    if ($usePost) {
        $request_url = $url;
        logit("refacctok:INFO:request_url:{$request_url}");
        logit("refacctok:INFO:post_body:{$query_parameter_string}");
        $headers[] = 'Content-Type: application/x-www-form-urlencoded';
        $response = do_post($request_url, $query_parameter_string, 443, $headers);
    } else {
        $request_url = $url . ($query_parameter_string ? '?' . $query_parameter_string : '');
        logit("refacctok:INFO:request_url:{$request_url}");
        $response = do_get($request_url, 443, $headers);
    }
    // extract successful response
    if (!empty($response)) {
        list($info, $header, $body) = $response;
        $body_parsed = oauth_parse_str($body);
        if (!empty($body_parsed)) {
            logit("getacctok:INFO:response_body_parsed:");
            print_r($body_parsed);
        }
        $retarr = $response;
        $retarr[] = $body_parsed;
    }
    return $retarr;
}
コード例 #5
0
ファイル: library_helper.php プロジェクト: adadsa/sosmed
 function get_request_token($callback = 'oob', $usePost = false, $useHmacSha1Sig = true, $passOAuthInHeader = false)
 {
     $retarr = array();
     // return value
     $response = array();
     $params['oauth_version'] = '1.0';
     $params['oauth_nonce'] = mt_rand();
     $params['oauth_timestamp'] = time();
     $params['oauth_consumer_key'] = $this->consumer_key;
     $params['oauth_callback'] = $callback;
     $headers = array();
     // compute signature and add it to the params list
     if ($useHmacSha1Sig) {
         $params['oauth_signature_method'] = 'HMAC-SHA1';
         $params['oauth_signature'] = oauth_compute_hmac_sig($usePost ? 'POST' : 'GET', $this->reqUrl, $params, $this->consumer_secret, null);
     } else {
         $params['oauth_signature_method'] = 'PLAINTEXT';
         $params['oauth_signature'] = oauth_compute_plaintext_sig($this->consumer_secret, null);
     }
     // Pass OAuth credentials in a separate header or in the query string
     if ($passOAuthInHeader) {
         $query_parameter_string = oauth_http_build_query($params, true);
         $header = build_oauth_header($params, "Twitter API");
         $headers[] = $header;
     } else {
         $query_parameter_string = oauth_http_build_query($params);
     }
     // POST or GET the request
     if ($usePost) {
         $request_url = $this->reqUrl;
         logit("getreqtok:INFO:request_url:{$request_url}");
         logit("getreqtok:INFO:post_body:{$query_parameter_string}");
         $headers[] = 'Content-Type: application/x-www-form-urlencoded';
         $response = do_post($request_url, $query_parameter_string, 80, $headers);
     } else {
         $request_url = $this->reqUrl . ($query_parameter_string ? '?' . $query_parameter_string : '');
         logit("getreqtok:INFO:request_url:{$request_url}");
         $response = do_get($request_url, 80, $headers);
     }
     // extract successful response
     if (!empty($response)) {
         list($info, $header, $body) = $response;
         $body_parsed = oauth_parse_str($body);
         if (!empty($body_parsed)) {
             logit("getreqtok:INFO:response_body_parsed:");
         }
         $retarr = $response;
         $retarr[] = $body_parsed;
     }
     return $retarr;
 }
コード例 #6
0
ファイル: getfollowrequests.php プロジェクト: 0x27/mrw-code
/**
* Call twitter to post a tweet
* @param string $consumer_key obtained when you registered your app
* @param string $consumer_secret obtained when you registered your app
* @param string $status_message
* @param string $access_token obtained from get_request_token
* @param string $access_token_secret obtained from get_request_token
* @param bool $usePost use HTTP POST instead of GET
* @param bool $passOAuthInHeader pass OAuth credentials in HTTP header
* @return response string or empty array on error
*/
function post_tweet($consumer_key, $consumer_secret, $status_message, $access_token, $access_token_secret, $usePost = false, $passOAuthInHeader = true)
{
    $retarr = array();
    // return value
    $response = array();
    //$url = 'http://api.twitter.com/1/statuses/update.json';
    $url = 'http://api.twitter.com/1.1/friendships/incoming.json';
    //$params['status'] = $status_message;
    $params['oauth_version'] = '1.0';
    $params['oauth_nonce'] = mt_rand();
    $params['oauth_timestamp'] = time();
    $params['oauth_consumer_key'] = $consumer_key;
    $params['oauth_token'] = $access_token;
    // compute hmac-sha1 signature and add it to the params list
    $params['oauth_signature_method'] = 'HMAC-SHA1';
    $params['oauth_signature'] = oauth_compute_hmac_sig($usePost ? 'POST' : 'GET', $url, $params, $consumer_secret, $access_token_secret);
    // Pass OAuth credentials in a separate header or in the query string
    if ($passOAuthInHeader) {
        $query_parameter_string = oauth_http_build_query($params, true);
        $header = build_oauth_header($params, "Twitter API");
        $headers[] = $header;
    } else {
        $query_parameter_string = oauth_http_build_query($params);
    }
    // POST or GET the request
    if ($usePost) {
        $request_url = $url;
        logit("tweet:INFO:request_url:{$request_url}");
        logit("tweet:INFO:post_body:{$query_parameter_string}");
        $headers[] = 'Content-Type: application/x-www-form-urlencoded';
        $response = do_post($request_url, $query_parameter_string, 80, $headers);
    } else {
        $request_url = $url . ($query_parameter_string ? '?' . $query_parameter_string : '');
        logit("tweet:INFO:request_url:{$request_url}");
        $response = do_get($request_url, 80, $headers);
    }
    // extract successful response
    if (!empty($response)) {
        list($info, $header, $body) = $response;
        if ($body) {
            logit("tweet:INFO:response:");
            print json_pretty_print($body);
        }
        $retarr = $response;
    }
    return $retarr;
}
コード例 #7
0
ファイル: postcontact.php プロジェクト: S-Berhane/oauth_yahoo
/**
 * Call the Yahoo Contact API
 * @param string $consumer_key obtained when you registered your app
 * @param string $consumer_secret obtained when you registered your app
 * @param string $guid obtained from getacctok
 * @param string $access_token obtained from getacctok
 * @param string $access_token_secret obtained from getacctok
 * @param bool $usePost use HTTP POST instead of GET
 * @param bool $passOAuthInHeader pass the OAuth credentials in HTTP header
 * @return response string with token or empty array on error
 */
function postcontact($consumer_key, $consumer_secret, $guid, $access_token, $access_token_secret, $usePost = false, $passOAuthInHeader = true)
{
    $retarr = array();
    // return value
    $response = array();
    $post_body = '{"contact":{"fields":[{"type":"name","value":{"givenName":"John","middleName":"","familyName":"Doe","prefix":"","suffix":"","givenNameSound":"","familyNameSound":""}},{"type":"email","value":"*****@*****.**"}]}}';
    $url = 'http://social.yahooapis.com/v1/user/' . $guid . '/contacts';
    $params['oauth_version'] = '1.0';
    $params['oauth_nonce'] = mt_rand();
    $params['oauth_timestamp'] = time();
    $params['oauth_consumer_key'] = $consumer_key;
    $params['oauth_token'] = $access_token;
    // compute hmac-sha1 signature and add it to the params list
    $params['oauth_signature_method'] = 'HMAC-SHA1';
    $params['oauth_signature'] = oauth_compute_hmac_sig($usePost ? 'POST' : 'GET', $url, $params, $consumer_secret, $access_token_secret);
    // Pass OAuth credentials in a separate header or in the query string
    if ($passOAuthInHeader) {
        $query_parameter_string = oauth_http_build_query($params, true);
        $header = build_oauth_header($params, "yahooapis.com");
        $headers[] = $header;
        $request_url = $url;
    } else {
        $query_parameter_string = oauth_http_build_query($params);
        $request_url = $url . '?' . $query_parameter_string;
    }
    // POST or GET the request
    if ($usePost) {
        logit("postcontact:INFO:request_url:{$request_url}");
        logit("postcontact:INFO:post_body:{$post_body}");
        $headers[] = 'Content-Type: application/json';
        $response = do_post($request_url, $post_body, 80, $headers);
    } else {
        logit("postcontact:INFO:request_url:{$request_url}");
        $response = do_get($request_url, 80, $headers);
    }
    // extract successful response
    if (!empty($response)) {
        list($info, $header, $body) = $response;
        if ($body) {
            logit("postcontact:INFO:response:");
            print json_pretty_print($body);
        }
        $retarr = $response;
    }
    return $retarr;
}
コード例 #8
0
 public function access_token($code, $state)
 {
     global $USER, $SESSION;
     $consumer = self::get_service_consumer();
     if (!empty($consumer->key) && !empty($consumer->secret)) {
         $url = $consumer->oauthurl . 'accessToken';
         $method = 'POST';
         $port = $consumer->ssl ? '443' : '80';
         $params = array('grant_type' => 'authorization_code', 'code' => $code, 'redirect_uri' => $consumer->callback, 'client_id' => $consumer->key, 'client_secret' => $consumer->secret);
         $query = oauth_http_build_query($params);
         $header = array();
         $header[] = build_oauth_header($params, "LinkedIn API PHP Client");
         $header[] = 'Content-Length: ' . strlen($query);
         $header[] = 'Content-Type: application/x-www-form-urlencoded';
         $config = array(CURLOPT_URL => $url, CURLOPT_PORT => $port, CURLOPT_HEADER => true, CURLOPT_HTTPHEADER => $header, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $query, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYHOST => 2, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_CAINFO => dirname(__FILE__) . '/cert/cacert.crt');
         $result = mahara_http_request($config);
         if ($result->info['http_code'] == 200 && !empty($result->data)) {
             $data = json_decode(substr($result->data, $result->info['header_size']), true);
             // Save timestamp when access token was issued
             $data = array_merge($data, array('timestamp' => time()));
             if ($state == 'newaccesstoken') {
                 $SESSION->add_ok_msg(get_string('accesstokensaved', 'blocktype.linkedinprofile'));
             } else {
                 $SESSION->add_ok_msg(get_string('accesstokenrefreshed', 'blocktype.linkedinprofile'));
             }
             return $data;
         } else {
             $errno = isset($result->errno) && !empty($result->errno) ? $result->errno : 0;
             $error = isset($result->error) && !empty($result->error) ? $result->errno : '';
             $SESSION->add_error_msg(get_string('curlerror', 'blocktype.linkedinprofile', $errno, $error));
             $httpcode = isset($result->info['http_code']) && $result->info['http_code'] != 200 ? $result->info['http_code'] : 200;
             $SESSION->add_info_msg(get_string('httpcode', 'blocktype.linkedinprofile', $httpcode));
         }
     } else {
         throw new ConfigException('Can\'t find LinkedIn api key and/or secret key.');
     }
 }