package.xml 0000644 0001750 0000144 00000052243 13731057347 012057 0 ustar mike users
oauthpecl.php.netoauth consumer extensionOAuth is an authorization protocol built on top of HTTP which allows applications to securely access data without having to store usernames and passwords.
Requirements: ext/hash (now a part of PHP core)John Jawedjawedjawed@php.netyesRasmus Lerdorfrasmusrasmus@php.netyesSean DuBoisSeanDerSeanDer@php.netyesMichael Wallnermikemike@php.netyesFelipe Penafelipefelipe@php.netyesTjerk Meestersdatibbawdatibbaw@php.netyes2020-09-182.0.72.0stablestableBSD
* PHP 8 compatibility
7.0.01.4.0b1hashoauth2020-09-092.0.62.0stablestableBSD
* Fix github issue #14 (Fixes for 7.3/7.4 and opcache)
* Fix PHP-7.4 compatibility of object handler
* Fix memory leaks in OAuthProvider
* Fix crash in OAuthProvider's handler registration methods due to unconditional addref
* Fix crash in OAuth::fetch() due to modifying hash tables with a refcount>1
2020-02-062.0.52.0stablestableBSD
* fix config.w32 (cmb)
* fix 7.3 segfault (rlerdorf)
* replace uint-uint32_t, ulong-zend_ulong (Jan-E)
* handle cases where a passed in array might be a const (keyurdg)
* Fix configure for recent cURL versions (cmb)
* Bug #76722 cURL library headers not recognized on Debian 9 (js361014)
2019-12-022.0.42.0stablestableBSD
* fix php_pcre_match_impl call in 7.4+ (Remi)
2018-09-302.0.32.0stablestableBSD
* Use _ex versions to avoid SIGABRT of during use of hash functions in 7.2+ (Derick Rethans)
2018-06-282.0.22.0stablestableBSD
* Fix bug #74163: Segfault in oauth_compare_value
* Fix bug #73434: Null byte at end of array keys in getLastResponseInfo
* Fix compatibility with PHP 7.3
2016-06-172.0.22.0-devstablestableBSD
* Fix #72006
2016-03-112.0.12.0stablestableBSD
* Fix multiple segfaults (kgovande, rlerdorf)
2016-01-022.0.02.0stablestableBSD
- PHP 7 Support
- Bug 67658: configure does not detect missing pcre.h
- Bug 67665: update fetch to accept 20X HTTP ranges
- Bug 67883: check SERVER[REDIRECT_HTTP_AUTHORIZATION] for the Authorization header
2012-10-011.2.31.2stablestableBSD
- Fix reference counts not being incremented in OAuthProvider
2011-07-221.2.21.2stablestableBSD
- Bug 22834
2011-07-191.2.11.2stablestableBSD
- Fixed bugs: 22819, 22824
2011-06-271.21.2stablestable
- Fixed bugs: 22337, 22485, 22628, 22630, 22484 (and others!)
- Added ability to coerce HTTP method when calling OAuth::fetch()
2011-02-061.1.01.1.0stablestable
- Fixed bugs: 17782, 18214, 21426, 22093
- Added PLAINTEXT signature method support (stas@)
- Added OAuth::getRequestHeader and OAuth::setSSLChecks (hirokawa@)
2011-06-021.0.01.0.0stablestable
- Added php streams support (libcurl is no longer required)
- Added OAuthProvider support (http://php.net/oauthprovider)
- Added RSA-SHA1 signature support
- Added SHA256 signature support
- Added OAuth::setTimeout, OAuth::generateSignature, OAuth::setRequestEngine
- Send the User-Agent header for pecl/oauth
- Lots of other improvements...
2009-05-090.99.90.99.9betabeta
- Added 1.0a support (based on implementer Draft 2, http://oauth.googlecode.com/svn/spec/core/1.0a/drafts/2/oauth-core-1_0a.html)
- Added support for empty parameters
- Added oauth_callback support to getRequestToken
- Added oauth_verifier support to getAccessToken
- Fixed build failures for PHP5.1
2010-06-021.0.01.0.0stablestable
- Added php streams support (libcurl is no longer required)
- Added OAuthProvider support (http://php.net/oauthprovider)
- Added RSA-SHA1 signature support
- Added SHA256 signature support
- Added OAuth::setTimeout, OAuth::generateSignature, OAuth::setRequestEngine
- Send the User-Agent header for pecl/oauth
- Lots of other improvements...
2009-05-090.99.90.99.9betabeta
- Added 1.0a support (based on implementer Draft 2, http://oauth.googlecode.com/svn/spec/core/1.0a/drafts/2/oauth-core-1_0a.html)
- Added support for empty parameters
- Added oauth_callback support to getRequestToken
- Added oauth_verifier support to getAccessToken
- Fixed build failures for PHP5.1
2009-04-300.99.80.99.8betabeta
- Throw an exception if a caller attempts to use something other than HTTP POST with an auth type set to FORM
- Do not use pear package version number (bug #16404)
- Please read http://oauth.net/advisories/2009-1
2009-04-230.99.70.99.7betabeta
- Throw an exception if a caller attempts to use something other than HTTP POST with an auth type set to FORM
- Do not use pear package version number (bug #16404)
- Please read http://oauth.net/advisories/2009-1
2009-04-200.99.60.99.6betabeta
- Win32 support (pierre)
- Fixed bug #16398
- Use pear package version number
2009-04-200.99.50.99.5betabeta
- Added support for multiple protocols (Tjerk Meesters)
- Signature generation fix for quoted values
- Added disableSSLChecks and enableSSLChecks (enabled by default)
- Added support for following and signing redirects
2009-03-260.99.50.99.5betabetaBSD
- Added extra constants for Google Portable Contact API's
2008-26-030.99.30.99betabetaBSD
- Fixed double free with Zend object (Rasmus)
- Fixed memory leaks if ext/hash was not available
- Encode consumer secret first for the properties hash
- Added enableDebug and disableDebug functions (docs coming soon)
- More examples (Twitter, Google Portable Contacts, Netflix)
2008-12-030.99.20.99betabetaBSD
- Fixed PECL bug #15110 #15111 (ZTS build, Segfault and memory leak, hannes/felipe) + other memleaks
- Fixed PECL bug #15112 (incorrect cvs branch)
- Updated fetch to respect additional request params, added examples and TODO
- Updates for 5.3
- Support for older libcurl versions
- Added arginfo
- Marking as beta
2008-11-200.99.10.99alphaalphaBSD
- Initial release.
oauth-2.0.7/examples/config.inc.php 0000644 0001750 0000144 00000000473 13731057347 016066 0 ustar mike users
oauth-2.0.7/examples/request_signing.php 0000644 0001750 0000144 00000001507 13731057347 017256 0 ustar mike users setToken(GENERAL_PURPOSE_TOKEN,GENERAL_PURPOSE_TOKEN_SECRET);
$o->fetch("https://www.some.tld/1.0/an_api");
$response_info = $o->getLastResponseInfo();
header("Content-Type: {$response_info["content_type"]}");
echo $o->getLastResponse();
} catch(Exception $E) {
echo "Error: [".$E->errorMessage."] \n";
echo "Response: [".$E->lastResponse."] \n";
exit;
}
oauth-2.0.7/examples/request_token.php 0000644 0001750 0000144 00000001136 13731057347 016736 0 ustar mike users getRequestToken("https://www.foo.tld/oauth/requestToken");
file_put_contents(OAUTH_TMP_DIR ."/request_token_resp",serialize($arrayResp));
/* note: on the redirect there is no need to pass anything other than the oauth_token parameter */
header("Location: https://www.foo.tld/oauth/authorize?oauth_token={$arrayResp["oauth_token"]}");
} catch(OAuthException $E) {
print_r($E);
echo "Response: ". $E->lastResponse . "\n";
}
oauth-2.0.7/examples/access_token.php 0000644 0001750 0000144 00000001174 13731057347 016511 0 ustar mike users setToken($request_token_info["oauth_token"],$request_token_info["oauth_token_secret"]);
$arrayResp = $o->getAccessToken("https://www.foo.tld/oauth/accessToken");
file_put_contents(OAUTH_TMP_DIR . "/access_token_resp",serialize($arrayResp));
echo "Finished getting the access token!";
} catch(OAuthException $E) {
echo "Response: ". $E->lastResponse . "\n";
}
oauth-2.0.7/examples/exec_api.php 0000644 0001750 0000144 00000001040 13731057347 015615 0 ustar mike users setToken($access_token_info["oauth_token"],$access_token_info["oauth_token_secret"]);
$arrayResp = $o->fetch("https://www.foo.tld/oauth/an_api_for_user_info",array("extra" => "arg(h)"));
echo $o->getLastResponse();
} catch(OAuthException $E) {
echo "Response: ". $E->lastResponse . "\n";
}
oauth-2.0.7/examples/README 0000644 0001750 0000144 00000001507 13731057347 014217 0 ustar mike users === CONFIGURATION ===
2 things need updated with information from the OAuth service provider:
* config.inc.php
* the URL's of the providers resources (to get tokens, manipulate user info, etc.)
=== RUNNING EXAMPLES ===
To run the examples:
1) Execute request_token.php
2) Direct your web browser to the URL provided and authorize the access
3) Execute access_token.php
After the above steps, the application examples can be run.
There are several directories here which relate to OAuth service providers
and their interfaces. The current directory contains generic examples.
Please contribute to example code for new providers as they come along accordingly.
The example code writes token information to /tmp in a static file, this is not
a good idea for anything beyond tinkering, you should store these tokens
somewhere safer.
oauth-2.0.7/examples/yahoo/config.inc.php 0000644 0001750 0000144 00000000663 13731057347 017206 0 ustar mike users
oauth-2.0.7/examples/yahoo/request_signing.php 0000644 0001750 0000144 00000001270 13731057347 020372 0 ustar mike users fetch("http://query.yahooapis.com/v1/yql?q=show%20tables&format=xml");
$response_info = $o->getLastResponseInfo();
header("Content-Type: {$response_info["content_type"]}");
echo $o->getLastResponse();
} catch(Exception $E) {
echo "Error: [".$E->getMessage()."] \n";
echo "Response: [".$E->lastResponse."] \n";
exit;
}
oauth-2.0.7/examples/yahoo/request_token.php 0000644 0001750 0000144 00000001107 13731057347 020053 0 ustar mike users getRequestToken("https://api.login.yahoo.com/oauth/v2/get_request_token");
file_put_contents(OAUTH_TMP_DIR . "/request_token_resp",serialize($arrayResp));
$authorizeUrl = $arrayResp["xoauth_request_auth_url"];
if(PHP_SAPI=="cli") {
echo "Navigate your http client to: {$authorizeUrl}\n";
} else {
header("Location: {$authorizeUrl}");
}
} catch(OAuthException $E) {
echo "Response: ". $E->lastResponse . "\n";
}
oauth-2.0.7/examples/yahoo/access_token.php 0000644 0001750 0000144 00000001151 13731057347 017623 0 ustar mike users setToken($request_token_info["oauth_token"],$request_token_info["oauth_token_secret"]);
$arrayResp = $o->getAccessToken("https://api.login.yahoo.com/oauth/v2/get_token");
file_put_contents(OAUTH_TMP_DIR . "/access_token_resp",serialize($arrayResp));
echo "Finished getting the access token!\n";
} catch(OAuthException $E) {
echo "Response: ". $E->lastResponse . "\n";
}
oauth-2.0.7/examples/yahoo/exec_yql.php 0000644 0001750 0000144 00000001314 13731057347 016774 0 ustar mike users setToken($access_token_info["oauth_token"],$access_token_info["oauth_token_secret"]);
$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";
}
oauth-2.0.7/examples/yahoo/exec_yql_refresh_token.php 0000644 0001750 0000144 00000002755 13731057347 021724 0 ustar mike users 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";
}
oauth-2.0.7/examples/fireeagle/config.inc.php 0000644 0001750 0000144 00000000723 13731057347 020007 0 ustar mike users
oauth-2.0.7/examples/fireeagle/request_signing.php 0000644 0001750 0000144 00000001536 13731057347 021203 0 ustar mike users setToken(GENERAL_PURPOSE_TOKEN,GENERAL_PURPOSE_TOKEN_SECRET);
$o->fetch("https://fireeagle.yahooapis.com/api/0.1/recent.xml");
$response_info = $o->getLastResponseInfo();
header("Content-Type: {$response_info["content_type"]}");
echo $o->getLastResponse();
} catch(Exception $E) {
echo "Error: [".$E->errorMessage."] \n";
echo "Response: [".$E->lastResponse."] \n";
exit;
}
oauth-2.0.7/examples/fireeagle/request_token.php 0000644 0001750 0000144 00000001333 13731057347 020660 0 ustar mike users getRequestToken("https://fireeagle.yahooapis.com/oauth/request_token");
file_put_contents(OAUTH_TMP_DIR . "/request_token_resp",serialize($arrayResp));
$authorizeUrl = "https://fireeagle.yahoo.net/oauth/authorize?oauth_token={$arrayResp["oauth_token"]}";
if(PHP_SAPI=="cli") {
echo "Navigate your http client to: {$authorizeUrl}\n";
} else {
/* note: on the redirect there is no need to pass anything other than the oauth_token parameter */
header("Location: {$authorizeUrl}");
}
} catch(OAuthException $E) {
echo "Response: ". $E->lastResponse . "\n";
}
oauth-2.0.7/examples/fireeagle/access_token.php 0000644 0001750 0000144 00000001176 13731057347 020436 0 ustar mike users setToken($request_token_info["oauth_token"],$request_token_info["oauth_token_secret"]);
$arrayResp = $o->getAccessToken("https://fireeagle.yahooapis.com/oauth/access_token");
file_put_contents(OAUTH_TMP_DIR . "/access_token_resp",serialize($arrayResp));
echo "Finished getting the access token!\n";
} catch(OAuthException $E) {
echo "Response: ". $E->lastResponse . "\n";
}
oauth-2.0.7/examples/fireeagle/exec_update_user.php 0000644 0001750 0000144 00000001150 13731057347 021311 0 ustar mike users setToken($access_token_info["oauth_token"],$access_token_info["oauth_token_secret"]);
/* https://fireeagle.yahoo.net/developer/documentation/updating */
$arrayResp = $o->fetch("https://fireeagle.yahooapis.com/api/0.1/update",array("postal" => "95054"));
echo $o->getLastResponse();
} catch(OAuthException $E) {
echo "Response: ". $E->lastResponse . "\n";
}
oauth-2.0.7/examples/netflix/config.inc.php 0000644 0001750 0000144 00000000544 13731057347 017536 0 ustar mike users
oauth-2.0.7/examples/netflix/request_token.php 0000644 0001750 0000144 00000001223 13731057347 020404 0 ustar mike users getRequestToken("http://api.netflix.com/oauth/request_token");
file_put_contents(OAUTH_TMP_DIR . "/request_token_resp",serialize($arrayResp));
$authorizeUrl = $arrayResp["login_url"] . "&oauth_consumer_key=" . OAUTH_CONSUMER_KEY . "&application_name=" . $arrayResp["application_name"];
if(PHP_SAPI=="cli") {
echo "Navigate your http client to: {$authorizeUrl}\n";
} else {
header("Location: {$authorizeUrl}");
}
} catch(OAuthException $E) {
echo "Response: ". $E->lastResponse . "\n";
}
oauth-2.0.7/examples/netflix/access_token.php 0000644 0001750 0000144 00000001144 13731057347 020157 0 ustar mike users setToken($request_token_info["oauth_token"],$request_token_info["oauth_token_secret"]);
$arrayResp = $o->getAccessToken("http://api.netflix.com/oauth/access_token");
file_put_contents(OAUTH_TMP_DIR . "/access_token_resp",serialize($arrayResp));
echo "Finished getting the access token!\n";
} catch(OAuthException $E) {
echo "Response: ". $E->lastResponse . "\n";
}
oauth-2.0.7/examples/netflix/feeds.php 0000644 0001750 0000144 00000001324 13731057347 016604 0 ustar mike users setToken($access_token_info["oauth_token"],$access_token_info["oauth_token_secret"]);
$feeds_url = "http://api.netflix.com/users/". oauth_urlencode($access_token_info["user_id"]) ."/feeds";
$o->fetch($feeds_url);
$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";
var_dump($E);
}
oauth-2.0.7/examples/netflix/rental_history_atom.php 0000644 0001750 0000144 00000002233 13731057347 021604 0 ustar mike users setToken($access_token_info["oauth_token"],$access_token_info["oauth_token_secret"]);
$feeds_url = "http://api.netflix.com/users/". oauth_urlencode($access_token_info["user_id"]) ."/feeds";
$o->fetch($feeds_url);
$feeds = $o->getLastResponse();
/* we need to pick the rental history feed (returned rentals) */
$feeds_xml = new SimpleXMLElement($feeds);
/* if you want to access other feeds, change the following rel attribute */
$feed_rel = "http://schemas.netflix.com/feed.rental_history.returned";
$returned_feed = current($feeds_xml->xpath("/resource/link[@rel=\"{$feed_rel}\"]"))->attributes();
/* don't sign the feed requests */
$curl = curl_init($returned_feed["href"]);
curl_exec($curl);
} catch(OAuthException $E) {
echo "Exception caught!\n";
echo "Response: ". $E->lastResponse . "\n";
var_dump($E);
}
oauth-2.0.7/examples/twitter/README 0000644 0001750 0000144 00000000070 13731057347 015713 0 ustar mike users Run fetchTimeline.php through with your php-cli binary.
oauth-2.0.7/examples/twitter/constants.php 0000644 0001750 0000144 00000001601 13731057347 017561 0 ustar mike users
oauth-2.0.7/examples/twitter/fetchTimeline.php 0000644 0001750 0000144 00000003053 13731057347 020330 0 ustar mike users enableDebug();
$request_token_info = $oauth->getRequestToken(TWITTER_REQUEST_TOKEN_URL);
printf("I think I got a valid request token, navigate your www client to:\n\n%s?oauth_token=%s\n\nOnce you finish authorizing, hit ENTER or INTERRUPT to exit\n\n", TWITTER_AUTHORIZE_URL, $request_token_info["oauth_token"]);
$in = fopen("php://stdin", "r");
fgets($in, 255);
printf("Grabbing an access token...\n");
/* grab the access token, which is your persistent token which you use for future requests */
$oauth->setToken($request_token_info["oauth_token"],$request_token_info["oauth_token_secret"]);
$access_token_info = $oauth->getAccessToken(TWITTER_ACCESS_TOKEN_URL);
printf("Access token: %s\n",$access_token_info["oauth_token"]);
printf("Access token secret: %s\n",$access_token_info["oauth_token_secret"]);
printf("Fetching the public timeline JSON via %s\n",TWITTER_PUBLIC_TIMELINE_API);
$oauth->setToken($access_token_info["oauth_token"],$access_token_info["oauth_token_secret"]);
$oauth->fetch(TWITTER_PUBLIC_TIMELINE_API);
/* from this point on OAuth is over, now handling the JSON response is in order */
$json = json_decode($oauth->getLastResponse());
printf("An item in the decoded JSON: %s\n",print_r($json[0],true));
} catch(OAuthException $E) {
print_r($E);
}
?>
oauth-2.0.7/examples/twitter/php.jpg 0000644 0001750 0000144 00000054712 13731057347 016340 0 ustar mike users JFIF H H Created with GIMP C
C ,
o
#
!"312CScs$ABRb4QaqrDT%Ut&W')57:VYdeguw < !1"AQ2aq#B$3RS4T ? 0 0 0 0 0y@W,(]'-ĊL턧e%$l|߳GAo|EDZVrmLH\4lbG86*my]`f}R טaĕcaC: 7w= NV*+̵i|ji%ԧn峘;`֡8#JGwR78AA.7\XU_cy]=s3^MTo ƮpnkQc>v3:m/ďOg2 E 8~ю+4cIUbyiЮ {Zq\R}=tukU:;6R=T 0 0 0 0 0 0 02 |w^ 0P0A$?.i zRBQACQjPt`wGH<["4}Keo>Qv|(\v}LI]2C0$s:&AO
Fd<]Mby3xäIk}>zT*BKe%7?m4뇸
v}_֩֟,K^c
(EO:VA /OnebY9|Iil%RQtr%iI5zdm^)Nkr+ &=&$%:VtpbpX
S{zmUH9i<ŹJؽA1P'AL?m_Oeu/GةrΗj]ԣM5.YYCSɞCThꤥdEĕbIPI j+(̺|MN]GHsH[KdF 7m-D)l_+-${ E#$' E*3e Z5/%ΌkV{vpɦqHF6ThS jũ&PjJ(7RGw_VدЀeaGL/RrQ#ۧZƐ};Ŏ7tUɱi λNxVʪ32(7'FFDy&&tL% &_k*S,1?L;x6z_;dH?,)Y:S*J=!diCAʉnWӆr0FCc=(b|o lp7XWʙ¥o
MB+uM$j%А scPNP{䏧bBOүё3Ef'>*aŮ({Tߨ<c 8wsFnkOU۬Z.L#Yl>wMk Kӊ >M NiΑمL5i;v_zrJV04ӥBcƟ~(ZÚR{6Ʀ{!0XU%='4фV4nmN6)4]RN__]Fǯ':*}{?FzҍԪiFGztq{}sѴ~]7$=&96[!-lb".(t4s·i+Zf4}TF4`[5G#bg;]a:c3̰'" fXXN w>0aGN'Xo=Ay4O(dԨB[I&.kVX|3'/\4:m]c )[w9+zZF&dLOPopZg7$#cѓAW^,0:Ai'/0HG)P?cT&V=s[^'oJIe:Za^n},kSJwZ78ɳ܍߂Syt