File: exec_yql_refresh_token.php

package info (click to toggle)
php-oauth 2.0.2%2B1.2.3-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 816 kB
  • ctags: 950
  • sloc: ansic: 7,197; xml: 841; php: 536; makefile: 1
file content (29 lines) | stat: -rw-r--r-- 1,517 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
require("config.inc.php");
try {
	$o = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_AUTHORIZATION);
	$access_token_info = unserialize(file_get_contents(OAUTH_TMP_DIR . "/access_token_resp"));
	$o->setToken($access_token_info["oauth_token"],$access_token_info["oauth_token_secret"]);

	/* the following bit refreshes the token using the session handle (http://wiki.oauth.net/ScalableOAuth) ... you don't need it unless your original access token is invalid but you'll need to audit this yourself, for example sakes we'll pretend it has expired. */
	if(!empty($access_token_info["oauth_session_handle"])) {
		$o->setAuthType(OAUTH_AUTH_TYPE_URI);

		$access_token_info = $o->getAccessToken("https://api.login.yahoo.com/oauth/v2/get_token",$access_token_info["oauth_session_handle"]);
		$o->setToken($access_token_info["oauth_token"],$access_token_info["oauth_token_secret"]);

		$o->setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);
		file_put_contents(OAUTH_TMP_DIR . "/access_token_resp",serialize($access_token_info));
	}
    /* done refreshing access token, time to do some fetching! */
	
	$query = rawurlencode("select * from social.profile where guid=me");
	$o->fetch("http://query.yahooapis.com/v1/yql?q=$query&format=xml");

	$response_info = $o->getLastResponseInfo();
	header("Content-Type: {$response_info["content_type"]}");
	echo $o->getLastResponse();
} catch(OAuthException $E) {
	echo "Exception caught!\n";
	echo "Response: ". $E->lastResponse . "\n";
}