CINXE.COM
PHP OAuth Library: Authorize and access APIs using OAuth - PHP Classes
<!DOCTYPE HTML> <html lang="en"> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <meta name="google-site-verification" content="koB0IMWgAHKwEXWyOGt9RPqYrJU-fKzpoOTwRnprhKo" /> <title>PHP OAuth Library: Authorize and access APIs using OAuth - PHP Classes</title> <!-- https://files.phpclasses.org/styles.css --> <style type="text/css"> *, .normal-size { font-size: 14px; } html, body, input[type=submit] { color: black; font-family: "helvetica" , sans-serif , arial , helvetica; overflow-x: hidden !important; } html, body { background-color: #ffffff; height: 100%; margin: 0px; } a:link, a:active { color: #090F15; text-decoration: none; border-bottom-style: dotted; border-bottom-width: 1px; } a:visited { color: #26394d; } a:hover, #logoPHP > a, #logoCompany > a, #topLogoPHP > a { border-bottom-style: none; } .left { float: left; } .right { float: right; } .clear { clear: both; } input[type=text] { border: none; outline: none; color: #333; background: #ffe; z-index: 90; font-size: 1em; font-weight: normal; font-variant: normal; text-transform: none; font-family: monospace; } img { } h1, h1 * { font-size: 28px; width: auto !important; } h2 { color: #19597c; padding-bottom: 0px; padding-top: 0px; } h2, h2 * { font-size: 22px; } h3, h3 * { color: #19597c; font-size: 20px; margin: 10px 0px; padding: 10px 0px; } h4 * { color: #19597c; font-size: 16px; } h5 * { color: #19597c; font-size: 16px; } h6 * { color: #666666; font-size: 14px; } big big a { display: block; font-size: inherit; padding: 0px 0px 10px; } big a { font-size: inherit; } td > a > span, #reputation-button { font-size: 1em; } #reputation-menu { border-radius: 6px !important; } .nbpb, .nbtb { background-color: inherit; border-width: 0px; } .backgroundDecoration { position: absolute; right: 1025px; top: 0px; } #rightDecorationBg { left: 1025px; } #MainContainer { background-color: #19597c; min-height: 100%; margin: 0 auto; } #Container { background: none repeat scroll 0% 0% #fff; height: auto !important; margin: 0px auto; position: relative; z-index: 10; width: 98% !important; } #PageContent { margin: auto; width: 100% !important; position: relative; text-align: left; } #PageInfo, #PageInfoLogged { background: inherit; width: inherit; position: relative; } .pageDecoration { bottom: 0px; position: absolute; right: -9px; } #leftDecoration { left: -9px; } #user-bar:empty { min-height: 56px; } #user { padding-bottom: 4px; } #user, #TopLine, #UserContent, #order-menu { background-color: #19597c; width: 100%; } .shop-step { color: #ffffff; font-size: 18px; line-height: 36px; font-weight: bold; } .responsive-menu { padding-top: 0px; padding-bottom: 0px; } #TopLine, #UserContent { z-index: 1; position: relative; } #TopLine { position: absolute; } #user table { white-space: nowrap; width: auto; margin: 0px auto; padding: 5px 0px 0px 140px; } #user table td { line-height: 30px; padding: 0px; white-space: nowrap; width: auto; } #user .tabcontent, #endnavigation .tabcontent { color: #C3F0FF; font-weight: bold; text-transform: capitalize; } #user .tabcontent span { float: left; padding: 8px 5px 0px 2px; white-space: nowrap; } #user a { color: #FFFFFF; font-size: 14px; font-weight: bold; padding: 0px 5px 0px 2px; text-align: left; text-decoration: none; border-bottom-style: dotted; border-bottom-width: 1px; white-space: nowrap; } #user a:hover { color: #C3F0FF; } #user img { padding-top: 3px; vertical-align: top; } #user .nbgu { float: left; padding: 0px; white-space: nowrap; } #logoPHP { background-size: cover; text-align: center; height: 136px; background: rgb(63,132,41); background: linear-gradient(90deg, rgba(63,132,41,1) 0%, rgba(255,255,255,1) 50%, rgba(25,89,124,1) 100%); } #logoContainer { padding-top: 38px; display: inline-block; } #Top #logoCompany { position: absolute; right: 145px; top: -60px; } #invertedCompanyLogo { text-align: center; } #elephpant { margin-right: 15px; position: absolute; right: 5px; top: -97px; } #recommendpage { margin: auto; width: 40em; } #recommendpage table { min-width: 40em; text-align: center; white-space: normal; border: 2px solid #ccc; border-style: solid; border-radius: 0 0 5px 5px; border-top: 0; margin-bottom: 10px; } #recommendpage table td { background: none repeat scroll 0% 0% transparent; border: medium none; padding: 10px 0px 5px 10px; vertical-align: top; } #recommendpage table td img { padding: 0px 3px 0px 5px; } #navigation { background-color: #4b9759; clear: both; color: #000 !important; font-size: 1.2em; font-weight: bold; height: 44px; line-height: 24px; padding: 0px; position: relative; text-align: center; width: 100%; } #navigation form { border: 0px none; } #navigation table { height: 44px; width: 974px; } #navigation td { font-size: 14px; padding-top: 9px; } #navigation img { border: 0px none; margin: 0px 0px 0px 5px; vertical-align: middle; } #navigation a { color: #ffffff; text-decoration: none; border-bottom-width: 1px; } #navigation a:hover { text-decoration: underline; border-bottom-style: none; } #navigation td.nbgu { display: none; } #navigation td.nbtu, #MenuContent td.nblu { height: 24px; line-height: 24px; padding: 10px 4px 0px; text-decoration: none; border-bottom-width: 1px; } #navigation td.nbtu input[type=text] { height: 20px; margin: 0px 5px; width: 100px; } #navigation td.nbtu * { float: left; } #ads { clear: both; margin: 0px auto; padding: 0px; width: 1010px; } #topAds { display: inline-block; margin-left: 10px; } #inputText { color: #666666; float: left; height: 20px; width: 150px; } .BodyContent { text-align: center; } .BodyColumn { display: inline-block; vertical-align: top; text-align: left; } #BodyContent { display: inline-block; vertical-align: top; text-align: left; } .InfoContent { clear: both; margin: 10px auto 0px auto; max-width: 1025px; position: relative; padding: 0 10px; } .InfoContent .nblu, .InfoContent .nbtu { background-color: #dfdfdf; border-top-left-radius: 2px; border-top-right-radius: 2px; border-width: 1px; color: #19597c; font-size: 12px; padding: 7px; text-align: center; white-space: nowrap; width: auto; } .InfoContent .ct { background-color: #FCFCFC; border-width: 1px 1px 0 1px; border-style: solid; border-color: #E1E1E1; color: #000000; font-size: 12px; padding: 3px; text-align: center; white-space: nowrap; width: auto; } .InfoContent .cd { background-color: #FCFCFC; border-width: 0 1px 1px 1px; border-style: solid; border-color: #E1E1E1; color: #000000; font-size: 12px; padding: 3px; } .InfoContent .cg { margin: 1px; padding: 0px; white-space: nowrap; width: 4px; } .InfoContent .nbtd :hover, .InfoContent .nbtu :hover { background-color: #c9c9c9; text-decoration: underline; border-bottom-style: none; color: #2989C7; } .InfoContent .nbtd :hover .tab, .InfoContent .nbtu :hover .tab { color: #2989C7; } .InfoContent .nbld, .InfoContent .nbtd { background-color: #bfbfbf; border-color: #92DBEC; color: #05497B; font-size: 12px; padding: 7px; text-align: center; white-space: nowrap; width: auto; } .InfoContent .nblu, .InfoContent .nbld { background-color: #557799; color: #FFFFFF; } .InfoContent .nblu .tab { } .InfoContent .nbgu { color: #05497B; margin: 1px; padding: 0px; white-space: nowrap; } .InfoContent .nbgd { color: #05497B; margin: 1px; padding: 0px; white-space: nowrap; } .InfoContent .nbtu a, .InfoContent .nbld a, .InfoContent .nbtd a { color: #05497B; font-size: 12px; } .InfoContent .nbtu span.tab { color: #000000; } .InfoContent .nbtu a.tab { } .InfoContent .nblu a:hover, .InfoContent .nbtu a:hover, .InfoContent .nbld a:hover, .InfoContent .nbtd a:hover { color: #2989C7; } .InfoContent .nblu a, .InfoContent .nbld a { color: #FFFFFF; font-size: 12px; } .InfoContent .nblu a:hover, .InfoContent .nbld a:hover { color: #C3F0FF; } .InfoContent .nbtu, .InfoContent .nbtd { vertical-align: middle; } .InfoContent .nbpu, .InfoContent .nbpd { padding: 6px 0 0 0; } .InfoContent td { padding-left: 5px; } .photo { border-radius: 50%; } .userInfoTable { border: 1px solid #f6f6f6; margin-left: 10px; padding: 20px; } td > b > h2 { margin-bottom: -1px; } .even td, .odd td, .even th, .odd th { color: #444444; } .menutext { border-bottom: 1px dotted #CCCCCC; color: #444444; } .menuicon > a { border-bottom-style: none !important; } .menuicon > a > img { } .menulink a { color: #595959; } .menulink a:hover { text-decoration: underline; border-bottom-style: none; } .back { background-color: #FFFFFF; } .even { background-color: #F9F9F9; } .light { background: none repeat scroll 0% 0% #f2f2f2; } .dark { background: none repeat scroll 0% 0% #d9d9d9; } .c799 > tbody > tr { padding: 10px !important; } .odd { } .even td, .odd td, .highlight td, .highlight th, .highlightContent td, .highlightContent th, .featuredeven td, .featuredodd td { padding: 5px; } .highlight, .highlightContent { background: none repeat scroll 0% 0% #F5F5F5; padding: 5px; } .highlightContent { animation-name: highlightContent; animation-duration: 0.5s; animation-iteration-count: infinite; animation-direction: alternate; } @keyframes highlightContent { 0% { background: #e6d346; } 100% { background: #ffffff; } } .highlightLink { background: none repeat scroll 0% 0% #FDFDFD; padding: 5px; line-height: 30px; animation-name: highlightLink; animation-duration: 0.5s; animation-iteration-count: infinite; animation-direction: alternate; border-radius: 8px; opacity: 90%; color: #000000; } *, .normal-size { } @keyframes highlightLink { 0% { background: #e6d346; } 100% { background: #ffffff; } } .tabcontent { } .nblu .tabcontent { color: #ffffff; } .featuredodd { background-color: #C5D4DB; padding: 5px; } .featuredeven { background-color: #C5D4DB; padding: 5px; } .removed { background-color: #AAAAAA; text-decoration: line-through; } .invalid { background-color: #FFCCCC; } .warning, .shopping-message-warning { background-color: #FFB366; } .alright { background-color: #70F0A0; } .monospace, code { font-family: monospace , Courier , "Courier New"; } .code { white-space: pre; white-space: pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: -moz-pre-wrap; white-space: -hp-pre-wrap; word-wrap: break-word; background: none repeat scroll 0% 0% #FCFCFC; padding: 4px; } .button, .shop-button, .remove-button, .shopping-message, .shopping-message-warning, input[class=shop-input] { border-radius: 6px; padding: 4px; border-width: 1px; border-style: solid; } .shop-button { border-color: #000000; background-color: #ccae66; background-image: linear-gradient(#ffdf92, #ccae66); color: #000000; font-weight: bold; font-size: 14px; padding: 7px; text-align: center; white-space: nowrap; width: auto; } .shop-button:hover, .shop-button:link, .shop-button:active { color: #000000; border-bottom-style: solid; border-bottom-width: 1px; } .shop-button:active { background-image: linear-gradient(#f8d37c, #ffdf92); } .remove-button { border-color: #000000; background-color: #1b95e0; background-image: linear-gradient(#1b95e0, #1470a8); color: #ffffff; font-weight: bold; font-size: 14px; padding: 7px; text-align: center; white-space: nowrap; width: auto; } .remove-button:hover, .remove-button:link, .remove-button:active, input[class=remove-button] { color: #ffffff; border-bottom-style: solid; border-bottom-width: 1px; } .remove-button:active { background-image: linear-gradient(#1470a8, #1b95e0); } .shopping-message-container { text-align: center; } .shopping-message, .shopping-message-warning { display: inline-block; line-height: 28px; border-color: #000000; font-weight: bold; font-size: 14px; padding: 7px; text-align: center; width: auto; } .shopping-message { color: #ffffff; background-color: #666666; background-image: linear-gradient(#666666, #333333); } .shopping-message-warning { color: #000000; background-color: #000000; background-image: linear-gradient(#FFB366, #cc8f52); } .shopping-price { font-size: 16px; text-align: center; font-weight: bold; width: auto; margin-left: 8px; margin-right: 8px; } input[class=shop-input] { margin: 4px; } .new { background-color: #ffea80; background-image: linear-gradient(#fffa80 , #ffea80); text-transform: uppercase; font-size: smaller; border-color: #ffe280; } .edit, .edit :link, .edit :visited, .InfoContent .nbtu a.edit { background-color: #60b040; background-image: linear-gradient(#90c070 , #60b040); color: #ffffff; border-color: #60a840; } .edit :hover, .InfoContent .nbtu a.edit :hover { background-color: #50a030; background-image: linear-gradient(#60b040 , #50a030); color: #C3F0FF; border-color: #60a840; } .edit :active, .InfoContent .nbtu a.edit :active { background-color: #60b040; background-image: linear-gradient(#50a030 , #60b040); color: #ffffff; border-color: #409020; box-shadow: inset 0 2px 4px rgba(0 , 0 , 0 , 0.15); } .tag, .tag :link, .tag :visited { background-color: #dea7a7; background-image: linear-gradient(#eeb3b3 , #dea7a7); color: #994d4d; border-color: #dea7a7; } .tag :hover { background-color: #ce9b9b; background-image: linear-gradient(#dea7a7 , #ce9b9b); color: #793d3d; border-color: #dea7a7; } .tag :active { background-color: #dea7a7; background-image: linear-gradient(#ce9b9b , #dea7a7); color: #994d4d; border-color: #be8f8f; box-shadow: inset 0 2px 4px rgba(0 , 0 , 0 , 0.15); } .ranking, .votes { display: inline; padding: 4px 8px; font-size: large; border-radius: 6px; background-color: #E8E8E8; color: #000000; } .votes { } .progressbar { background-color: #0000FF; background-image: url(https://files.phpclasses.org/graphics/phpclasses//progress.png); background-size: auto 100%; border-style: none; padding: 4px; text-align: center; border-radius: 6px; box-shadow: 4px 4px 4px #888; text-shadow: 2px 2px 2px #55C; } .box { border-color: #E1E1E1; border-style: solid; border-width: 1px; padding: 10px; margin-top: 10px; margin-bottom: 10px; border-radius: 10px; } .framed { margin: 5px 0px; padding: 10px 15px; border-radius: 10px; } .c360 > a { font-size: 13px; display: block; color: #729fcc; } .notifications { background: #e20000; background: radial-gradient(ellipse at center , #e20000 0% , #fb7b67 100%); border-radius: 6px; color: #ffffff; margin: 5px 0px; padding: 4px; text-shadow: 1px 1px 2px rgba(128 , 128 , 128 , 1); } .no-notifications { background: #888888; border-radius: 6px; color: #ffffff; margin: 5px 0px; padding: 4px; text-shadow: 1px 1px 2px rgba(128 , 128 , 128 , 1); } a:hover .no-notifications, a:hover .notifications { text-decoration: underline; border-bottom-style: none; } .score, .highlightScore { background: rgb(243,237,187); background: radial-gradient(circle, rgba(243,237,187,1) 0%, rgba(255,241,133,1) 100%); border-radius: 6px; margin: 5px 0px; padding: 4px; } .scoreText, .score, .highlightScore { color: #404040; text-shadow: 1px 1px 2px rgba(128 , 128 , 128 , 1); } a:hover .score, a:hover .scoreText { text-decoration: underline; border-bottom-style: none; } .highlightScore { animation-name: highlightScore; animation-duration: 0.5s; animation-iteration-count: infinite; animation-direction: alternate; } @keyframes highlightScore { 0% { background: #e6d346; } 100% { background: #ffffff; } } a:hover .highlightScore { text-decoration: underline; border-bottom-style: none; } .menu { border-color: #FCFCFF #707078 #707078 #FCFCFF; border-style: solid; border-width: 1px; cursor: default; opacity: 0.95; padding: 2px; background-color: #c9c9c9; } #Footer { height: 0px; width: 100%; z-index: 1; } #FooterInfo, #FooterInfoLogged { background: #19597c; min-height: 80px; position: relative; width: 100%; padding: 10px; margin-top: 10px; top: 10px; } #endnavigation { height: 35px; padding: 0px; width: 100%; } #endnavigation * { margin: 0px; padding: 0px; } #endnavigation table { height: 35px; padding: 0px; } #endnavigation table tbody { vertical-align: top; } #endnavigation a { color: #FFFFFF; font-weight: bold; padding: 0px 0px 0px 0px; text-decoration: none; border-bottom-style: dotted; border-bottom-width: 1px; text-transform: capitalize; } #endnavigation a:hover { text-decoration: underline; border-bottom-style: none; } #endnavigation img { padding-left: 13px; } #Copyright { width: 95% !important; color: #FFFFFF; height: 20px; margin: 0px auto; padding: 10px 0px; text-align: left; overflow: hidden !important; text-align: center; font-weight: bold; } #Copyright a { color: #86d5f2; text-decoration: none; border-bottom-style: dotted; border-bottom-width: 1px; } #Copyright a:hover { text-decoration: underline; border-bottom-style: none; } #Copyright table td { color: #FFFFFF; padding: 0px; } #Top, #TopLogged { background: none repeat scroll 0% 0% #FFFFFF; margin: 0px auto; padding: 0px; width: 100%; position: relative; bottom: 0px; top: 0px; } #Top h1, #TopLogged h1 { max-width: 1025px; margin: 15px auto 15px auto; overflow: hidden; color: #7F8C8D; } #Top h1 { position: relative; } #Top #topLogoPHP, #TopLogged #topLogoPHP, #TopLogo #topLogoPHP { max-width: 1025px; margin-left: auto; margin-right: auto; overflow: hidden; padding: 0 0 0 10px; color: #7F8C8D; position: relative; height: 60px; top: -60px; bottom: -60px; } #Top #topLogoPHP #topLogoPHPContainer, #TopLogged #topLogoPHP #topLogoPHPContainer, #TopLogo #topLogoPHP #topLogoPHPContainer { background-color: #ffffff; width: 200px; text-align: center; padding: 10px; position: relative; z-index: 2; } #TopLogo { margin-bottom: -60px; } #Top #subtitle, #TopLogged #subtitle { max-width: 1025px; margin: auto; overflow: hidden; } #Top #subtitle { position: relative; } .search-input { vertical-align: top; margin: 1px 0 0 0; display: inline-block; } #Contact, #Contact a { color: #ffffff; font-weight: bold; } .window-active-bar { border-style: none; background-color: #4b9759; height: 1%; white-space: nowrap; color: #ffffff; font-weight: bold; } .window-inactive-bar { border-style: none; background-color: #808080; height: 1%; white-space: nowrap; color: #c0c0c0; font-weight: bold; } .window { background-color: #f9f9f9; border-width: 1px; border-style: solid; border-top-color: #ffffff; border-left-color: #ffffff; border-bottom-color: #808080; border-right-color: #808080; } .nblu input { font-weight: bold; } .contactBar { position: fixed; bottom: 0px; right: 32px; z-index: 16777271; } </style> <!-- https://files.phpclasses.org/responsive.css --> <style type="text/css"> .safe-padding { padding: 14px; line-height: 200%; } .safe-size { font-size: 110%; } .call { display: none; } @media (max-width: 1024px) { .c1025 { display: none; } h1, h1 * { font-size: 20px; } h2, h2 * { font-size: 18px; } h3, h3 * { font-size: 16px; } h4 * { font-size: 14px; } h5 * { font-size: 12px; } h6 * { font-size: 10px; } #Top h1, #Top subtitle { padding: 10px 0 0 10px; margin: 0 0 0 0; } .InfoContent { margin: 0 auto 0 auto; padding: 0; } .responsive-menu { padding-top: 14px; padding-bottom: 12px; } .responsive-order-menu { padding-top: 0px; padding-bottom: 0x; } #BodyContent { display: block; } #PageContent { margin: 0; padding: 0; } } @media (min-width: 1025px) { .u1025 { display: none; } } @media (max-width: 1025px) { .contactBar { bottom: 0px; right: 10px; z-index: 16777271; } } @media (max-width: 399px) { .c399 { display: none; } } @media (max-width: 499px) { .c499 { display: none; } #Top h1 { width: auto; } } @media (max-width: 799px) { .c799 { display: none; } } @media (min-width: 799px) { .u799 { display: none; } } @media (max-width: 640px) { .c640 { display: none; } } @media (max-width: 360px) { .c360 { display: none; } } .menu-items { position: absolute; z-index: 1001; background-color: #103754; border-color: #cccccc; border-style: solid; border-width: 1px; padding: 4px; top: 32px; line-height: 36px; } .menu-items a { color: #C3F0FF; font-weight: bold; text-decoration: none; } #navigation-menu, #user-menu, #order-menu { display: inline-block; padding: 2px 4px 0px 4px; vertical-align: middle; text-align: left; position: relative; } #navigation-menu .menu-items, #user-menu .menu-items, #order-menu .menu-items { display: none; } #navigation-button:checked + .menu-items, #user-button:checked + .menu-items, #order-button:checked + .menu-items { display: inline-block; vertical-align: middle; white-space: nowrap; } #navigation-label, #user-label, #order-label { z-index: 1001; display: inline-block; vertical-align: middle; } #navigation-label img, #user-label img, #order-label img { pointer-events: none; } #navigation-menu input[type="checkbox"], #user-menu input[type="checkbox"], #order-menu input[type="checkbox"] { display: none; } </style> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="shortcut icon" href="https://files.phpclasses.org/graphics/phpclasses/favicon.ico"> <link rel="alternate" href="https://www.phpclasses.org/browse/feed/changes/package/7700.xml" type="application/rss+xml" title="PHP OAuth Library: Authorize and access APIs using OAuth"> <link rel="alternate" href="/browse/latest/latest.xml" type="application/rss+xml" title="Latest published classes"> <link rel="alternate" href="/reviews/latest/latest.xml" type="application/rss+xml" title="Latest published book reviews"> <link rel="canonical" href="https://www.phpclasses.org/package/7700-PHP-Authorize-and-access-APIs-using-OAuth.html"> <link rel="preconnect" href="https://files.phpclasses.org/"> <link rel="preconnect" href="https://token.rubiconproject.com"> <link rel="preconnect" href="https://clevernt.com"> <link rel="preconnect" href="https://pagead2.googlesyndication.com"> <link rel="preconnect" href="https://www.google.com"> <link rel="preconnect" href="https://www.gstatic.com"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://srv.buysellads.com"> <meta name="author" content="Manuel Lemos"> <meta name="description" lang="en" content="This class can authorize the access of users to an API using the OAuth protocol. It abstracts OAuth1 (1.0 and 1.0a) and OAuth2 in the same class, so you can use the same code to authorize the access on behalf of the current user any API that supports any version of the OAuth protocol. It works on Linux, Windows and any other platform without the PECL PHP OAuth extension. The access tokens are..."> <meta name="keywords" lang="en" content=", mysql, mail, login, session, email, paypal, facebook, test"> <meta property="fb:pages" content="114418241923267"> <!-- https://files.phpclasses.org/js/contentLoader.js --> <script type="text/javascript"> //<![CDATA[ /* * contentLoader.js * * Get the latest version from: * * http://www.jsclasses.org/fast-content-loader * * @(#) $Id: contentLoader.js,v 1.17 2021/08/12 10:57:05 mlemos Exp $ * * * This LICENSE is in the BSD license style. * * * Copyright (c) 2010, Manuel Lemos * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Manuel Lemos nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Portions of the code that implement document write capture are based * on the Bezen library by Eric Brechemier licensed under the Creative * Commons Attribution license 3.0: * * http://creativecommons.org/licenses/by/3.0/ * * http://bezen.org/javascript/ * * Portions of the code that implement JavaScript lazy loading are based * on the Flying scripts by Gijo Varghese: * * https://wordpress.org/plugins/flying-scripts/ */ /*jslint browser: true, devel: true, long: true, single: true, white: true, this: true, for: true */ var ML; if(ML === undefined) { ML = {}; } if(ML.content === undefined) { ML.content = {}; } ML.content.contentLoader = function() { var doNotRemoveThisGetTheLatestVersionFrom = 'https://www.jsclasses.org/fast-content-loader'; var content = []; var update = null; var outputDebug = function(o, message) { if(o.debug) { if(console && console.log) { console.log(message); } else { alert(message); } } return false; }; var replaceContent = function(o) { var remaining = 0; var c; var delayed; var place; var replace; var events; for(c in content) { if(content.hasOwnProperty(c)) { if(!content[c].loaded) { delayed = document.getElementById(content[c].delayed); place = document.getElementById(content[c].id); if(delayed && place) { delayed.parentNode.removeChild(delayed); place.parentNode.replaceChild(delayed, place); delayed.style.display = (content[c].inline ? ((content[c].width || content[c].height) ? 'inline-block' : 'inline') : 'block'); content[c].loaded = true; } else { remaining = remaining + 1; } } } } if(remaining === 0) { window.clearInterval(update); update = null; events = [ 'keydown', 'mouseover', 'touchmove', 'touchstart' ]; replace = function() { document.querySelectorAll("script[data-loading='lazy']").forEach(function(element) { var source; source = element.getAttribute('data-src'); element.removeAttribute('data-src'); element.removeAttribute('data-loading'); element.setAttribute('src', source); } ); window.clearTimeout(update); update = null; events.forEach(function(event) { window.removeEventListener(event, replace, { passive: true }); } ); }; update = window.setTimeout(replace, o.lazyDelay); events.forEach(function(event) { window.addEventListener(event, replace, { passive: true }); } ); } return remaining; }; this.debug = false; this.defaultInline = false; this.updateInterval = 10; this.contentPrefix = 'con'; this.delayedPrefix = 'del'; this.delayedContent = ' '; this.lazyDelay = 5000; this.addContent = function(properties) { var i; var m; if(!properties.content) { return outputDebug(this, 'Content properties are missing'); } properties.id = this.contentPrefix + content.length; properties.delayed = this.delayedPrefix + content.length; if(properties.inline === undefined) { properties.inline = this.defaultInline; } properties.loaded = false; if(typeof properties.priority !== 'number') { properties.priority = 0; } document.write('<div id="' + properties.id + '" style="' + (properties.width ? 'width: ' + properties.width + 'px;' : '') + (properties.height ? ' height: ' + properties.height + 'px;' : '') + ' overflow: none; display: ' + (properties.inline ? ((properties.width || properties.height) ? 'inline-block' : 'inline') : 'block') + '">' + this.delayedContent + '</div>'); for(i = content.length; i > 0 && content[i - 1].priority < properties.priority; i = i - 1) { } for(m = content.length; m > i; m = m - 1) { content[m] = content[m - 1]; } content[i] = properties; return true; }; this.loadContent = function() { var o = this; var written; var write; var writeln; var reportError; var catchError; var trim; var hasAttribute; var moveScript; var moveScriptClone; var moveNodes; var insertWritten; var load; var c; if(window.opera || navigator.userAgent.indexOf('MSIE') !== -1) { written = []; write = function(html) { written.push(html); }; writeln = function(html) { write(html + "\n"); }; reportError = function(error, url, line) { if(typeof error === 'object') { reportError(error.message, error.fileName, error.lineNumber); return; } outputDebug(o, error + ' at ' + url + '[' + line + ']'); }; catchError = function(func, description) { var f; description = description || 'error.catchError'; if(typeof func !== 'function') { reportError(description + ': A function is expected, found ' + typeof func); f = function() { }; return f; } f = function() { try { return func.apply(this, []); } catch(e) { if(window.onerror) { window.onerror(description + ': ' + e.message + ' in ' + func, e.fileName, e.lineNumber, true); } } }; return f; }; trim = function(text) { return(text.replace(/^\s*/, '').replace(/\s*$/, '')); }; hasAttribute = function(node, attribute) { var attributeNode; if(node.hasAttribute) { return node.hasAttribute(attribute); } attributeNode = node.getAttributeNode(attribute); if(attributeNode === null) { return false; } return attributeNode.specified; }; moveScript = function(script, target, callback) { var safeCallback = catchError(callback, 'script.onload'); if(script.readyState && script.onload !== null) { script.onreadystatechange = function() { if(script.readyState === 'loaded' || script.readyState === 'complete') { script.onreadystatechange = null; script.onerror = null; safeCallback(); } }; } else { script.onload = safeCallback; } target.appendChild(script); }; moveScriptClone = function(script, target, callback) { var externalScript; var internalScript; var i; var attribute; var code; if(hasAttribute(script, 'src')) { externalScript = document.createElement('script'); for(i = 0; i < script.attributes.length; i = i + 1) { attribute = script.attributes[i]; if(hasAttribute(script, attribute.name)) { externalScript.setAttribute(attribute.name, attribute.value); } } externalScript.text = script.text; moveScript(externalScript, target, callback); } else { internalScript = script.cloneNode(false); internalScript.text = script.text; internalScript.type = 'any'; target.appendChild(internalScript); if(hasAttribute(script, 'type')) { internalScript.setAttribute('type', script.type); } else { internalScript.removeAttribute('type'); } code = trim(internalScript.text); if(code.indexOf('<!--') === 0) { code = code.substr(4); if(code.substr(code.length - 3) === '-->') { code = code.substr(0, code.length - 3); } } (new Function(code))(); callback(); } }; moveNodes = function(source, target, callback) { var nextSource; var nextTarget; var nextStep; var clone; var scriptCount; var sourceAncestor; if(source === null) { callback(); return; } nextSource = null; nextTarget = target; nextStep = function() { moveNodes(nextSource, nextTarget, callback); }; if(source.nodeName === 'SCRIPT' && (!source.language || source.language.toLowerCase() === 'javascript') && (!source.type || trim(source.type).toLowerCase() === 'text/javascript')) { setTimeout(function() { moveScriptClone(source, target, function() { insertWritten(target, nextStep); }); }, 0); } else { clone = source.cloneNode(false); target.appendChild(clone); setTimeout(nextStep, 0); if(source.firstChild) { scriptCount = source.getElementsByTagName('script').length; if(scriptCount === 0) { if(source.nodeName === 'TABLE') { clone.outerHTML = source.outerHTML; } else { clone.innerHTML = source.innerHTML; } } else { nextSource = source.firstChild; nextTarget = clone; } } } if(nextSource === null) { nextSource = source.nextSibling; } sourceAncestor = source.parentNode; while(nextSource === null && sourceAncestor !== null) { nextSource = sourceAncestor.nextSibling; nextTarget = nextTarget.parentNode; sourceAncestor = sourceAncestor.parentNode; } }; insertWritten = function(target, callback) { var div; if(written.length > 0) { div = document.createElement('div'); div.innerHTML = '<br>' + written.join(''); written = []; div.removeChild(div.firstChild); moveNodes(div.firstChild, target, callback); } else { callback(); } }; load = function() { var documentWrite = document.write; var documentWriteln = document.writeln; var loadContentElement; document.write = write; document.writeln = writeln; loadContentElement = function (c) { var div = document.getElementById(content[c].id); div.innerHTML = ''; write(content[c].content); insertWritten(div, function () { content[c].loaded = true; c = c + 1; if(c < content.length) { loadContentElement(c); } else { document.writeln = documentWriteln; document.write = documentWrite; } }); }; loadContentElement(0); }; if(content.length) { if(window.addEventListener) { window.addEventListener('load', load, false); } else { if(window.attachEvent) { window.attachEvent('onload', load); } else { if(document.addEventListener) { document.addEventListener('load', load, false); } else { document.attachEvent('onload', load); } } } } } else { for(c in content) { if(content.hasOwnProperty(c)) { if(!content[c].loaded) { document.write('<div id="' + content[c].delayed + '" style="' + (content[c].width ? 'width: ' + content[c].width + 'px;' : '') + (content[c].height ? ' height: ' + content[c].height + 'px;' : '') + ' overflow: none; display: none">' + content[c].content + '</div>'); } } } if(replaceContent(o) && update === null) { update = window.setInterval(function() { replaceContent(o); }, this.updateInterval); } } }; }; //]]> </script> <script type="text/javascript"><!-- var cl = new ML.content.contentLoader(); var cookies = document.cookie.split(";"), expires = new Date(); for(var c = 0; c < cookies.length; ++c) { var m = cookies[c].match(/^ +([^=]+)/); if(m && m[1] === "visit") break; } if(c === cookies.length) { expires.setTime(expires.getTime()+(24*60*60*1000)); document.cookie = "visit=" + (new Date()).getTime() + "; expires=" + expires.toGMTString() + "; path=/;"; } // --></script> <!-- https://files.phpclasses.org/css/package.css --> <style type="text/css"> .content-wrap { overflow-wrap: anywhere; max-width: 300px } .content-wrap p img { width: 100%; height: auto; } .package-cut-full-width, .package-cut-width-800, .package-cut-width-640, .package-cut-width-500 { display: block; } .package-cell-cut-full-width, .package-cell-cut-width-800, .package-cell-cut-width-640, .package-cell-cut-width-500, .author-details, .tabbed-author-details { display: table-cell; } .author-information-nominee { display: inline-block; float: right; width: 65%; } .author-information { display: inline-block; float: right; width: 50%; } .package-information-nominee { display: inline-block; float: left; width: 35%; } .package-information { display: inline-block; float: left; width: 50%; } .picture-user-name { display: none; } @media (max-width: 1024px) { .package-cut-full-width, .package-cell-cut-full-width { display: none; } .author-details { display: table-cell; } .author-information-nominee { width: 35%; } .author-information { width: 20%; } .package-information-nominee { width: 65%; } .package-information { width: 80%; } .picture-user-name { display: block; } } @media (max-width: 799px) { .package-cut-width-800, .package-cell-cut-width-800, .tabbed-author-details { display: none; } } @media (max-width: 639px) { .package-cut-width-640, .package-cell-cut-width-640 { display: none; } .package-show-width-640 { display: block; } .package-cell-show-width-640 { display: table-cell; } } @media (min-width: 640px) { .package-show-width-640, .package-cell-show-width-640 { display: none; } } @media (max-width: 499px) { .package-cut-width-500, .package-cell-cut-width-500 { display: none; } .author-information-nominee { width: 35%; } .author-information { width: 35%; } .package-information-nominee { width: 65%; } .package-information { width: 65%; } } #package-menu { display: inline-block; padding: 0; } #package-menu .menu-items { display: none; } #package-button:checked + .menu-items { display: inline-block; } #package-menu input[type="checkbox"], #package-menu ul span.drop-icon { display: none; } </style> <!-- https://files.phpclasses.org/animation.js --> <script type="text/javascript"> //<![CDATA[ /* * * @(#) $Id: animation.js,v 1.41 2015/06/06 08:15:39 mlemos Exp $ * */ var ML; if(ML === undefined) { ML = { }; } if(ML.Animation === undefined) { ML.Animation = { }; } if(ML.Animation.Utility === undefined) { ML.Animation.Utility = { setOpacity: function(element, value) { element.style.opacity = element.style['-moz-opacity'] = element.style['-khtml-opacity'] = value; element.style.filter = 'alpha(opacity=' + Math.round(100*value) + ')'; if(!element.currentStyle || !element.currentStyle.hasLayout) { element.style.zoom = '100%'; } }, getElementPosition: function(element) { var position = { x: 0, y: 0}; do { position.x += element.offsetLeft; position.y += element.offsetTop; element = element.offsetParent; if(!element) { return position; } } while(element.nodeName !== 'HTML'); position.x += element.offsetLeft; position.y += element.offsetTop; return position; }, getElementSize: function(element, inner) { if(inner) { if(element.innerWidth) { return { width: element.innerWidth, height: element.innerHeight }; } if(element.clientWidth) { return { width: element.clientWidth, height: element.clientHeight }; } } else { if(element.clip !== undefined) { return { width: element.clip.width, height: element.clip.height }; } } return { width: element.offsetWidth, height: element.offsetHeight }; }, getWindowViewport: function() { var viewport; if(window.pageXOffset !== undefined) { viewport = { x: window.pageXOffset, y: window.pageYOffset }; } else { if(document.documentElement && document.documentElement.scrollLeft !== undefined) { viewport = { x: document.documentElement.scrollLeft, y: document.documentElement.scrollTop }; } else { if(document.body) { viewport = { x: document.body.scrollLeft, y: document.body.scrollTop }; } else { viewport = { x: 0, y: 0 }; } } } if(window.innerHeight !== undefined) { viewport.width = window.innerWidth; viewport.height = window.innerHeight; } else { if(document.documentElement && document.documentElement.clientHeight !== undefined) { viewport.width = document.documentElement.clientWidth; viewport.height = document.documentElement.clientHeight; } else { if(document.body) { viewport.width = document.body.clientWidth; viewport.height = document.body.clientHeight; } else { viewport.width = 0; viewport.height = 0; } } } return viewport; } }; } if(ML.Animation.Effects === undefined) { ML.Animation.Effects = { AppendContent: function(effect) { this.start = function() { var e = document.getElementById(effect.element); if(e) { e.innerHTML += effect.content; } else { if(this.debug) { alert('Inexisting element "' + effect.element + '" of effect ' + this.animation.effect + ' "' + effect.type + '"'); } } return true; }; }, Callback: function(effect) { this.start = function() { if(effect.callback) { effect.callback(); } else { if(this.debug) { alert('The callback function was not specified for effect ' + this.animation.effect + ' "' + effect.type + '"'); } } return true; }; }, CancelAnimation: function(effect) { this.start = function() { var a, c; for(a = 0, c = 0; a<ML.Animation.animations.length; a++) { if(ML.Animation.animations[a] !== null && this.animation.animation !== a && ML.Animation.animations[a].definition.name && ML.Animation.animations[a].definition.name === effect.animation) { ML.Animation.cancelAnimation(ML.Animation.animations[a]); c++; } } if(c === 0 && this.debug && this.debug >= 2) { alert('Inexisting animation to cancel "' + effect.animation + '" of effect ' + this.animation.effect); } return true; }; }, Emphasize: function(effect) { this.context = null; this.angle = Math.PI / 6; this.gapDistance = 4; this.angleGap = Math.PI / 24; this.lineWidth = (effect.lineWidth !== undefined ? effect.lineWidth : 4); this.opacity = (effect.opacity !== undefined ? effect.opacity : 0.5); this.strokeStyle = (effect.strokeStyle !== undefined ? effect.strokeStyle : '#0000ff'); this.lastAngle = this.angle; this.lastStep = 0; this.iterationLimit = 10; function drawEllipse(context, x, y, w, h, start, end, anticlockwise) { var scale; if((w <= 0 || h <= 0)) { if(this.debug) { alert('It was not specified a valid radius to draw an ellipse ' + w + ' x ' + h); } return; } scale = h / w; context.save(); context.scale(1, scale); context.beginPath(); context.arc(x, y / scale, w, start, end, anticlockwise); context.restore(); context.stroke(); } this.start = function() { var canvas, e = document.getElementById(effect.element), distance, iterationLimit; if(e) { canvas = document.createElement('canvas'); if(!canvas || !canvas.getContext || canvas.getContext('2d') === null) { if(this.debug) { alert('Canvas elements are not supported.'); } return true; } this.context = canvas.getContext('2d'); if(effect.canvas !== undefined) { canvas.id = effect.canvas; } this.size = ML.Animation.Utility.getElementSize(e, false); if(effect.method === 'circle') { canvas.width = this.size.width / Math.cos(this.angle) + this.lineWidth; canvas.style.left = (this.size.width - canvas.width)/2 + 'px'; this.size.width = canvas.width; canvas.height = this.size.height / Math.sin(this.angle) + this.lineWidth; canvas.style.top = (this.size.height - canvas.height)/2 + 'px'; this.size.height = canvas.height; e.insertBefore(canvas, e.firstChild); this.lastAngle = -this.angle; iterationLimit = this.iterationLimit; do { distance = Math.sqrt(Math.pow((canvas.width / 2 - this.lineWidth) * (Math.cos(this.angle) - Math.cos(this.angle - this.angleGap)), 2) + Math.pow((canvas.height / 2 - this.lineWidth) * (Math.sin(this.angle) - Math.sin(this.angle - this.angleGap)), 2)); this.angleGap = this.angleGap * (this.gapDistance + this.lineWidth) / distance; } while(--iterationLimit && Math.abs(distance - this.gapDistance - this.lineWidth) < 0.5); } else { if(effect.method === 'underline' || effect.method === 'double-underline') { iterationLimit = this.iterationLimit; do { distance = (1 - Math.cos(this.angleGap)) * this.size.width / Math.sin(this.angleGap); this.angleGap = this.angleGap * this.gapDistance / distance; } while(--iterationLimit && Math.abs(distance - this.gapDistance) < 0.5); canvas.width = this.size.width + this.lineWidth; canvas.style.left = Math.floor(-this.lineWidth / 2) + 'px'; canvas.height = (1 - Math.cos(this.angleGap)) * this.size.width / Math.sin(this.angleGap) + this.lineWidth * 1.5; canvas.style.top = this.size.height + 'px'; if(effect.method === 'double-underline') { canvas.height += this.lineWidth * 2; } this.size.height = this.size.width / Math.sin(this.angleGap) - this.lineWidth; e.insertBefore(canvas, e.firstChild); this.lastAngle = -Math.PI / 2 - this.angleGap; } else { if(this.debug) { alert('It was not specified a valid method for effect ' + this.animation.effect + ' "' + effect.type + '"'); } return true; } } if(e.style.zIndex.length === 0) { e.style.zIndex = 0; } e.style.position = "relative"; canvas.style.zIndex = parseInt(e.style.zIndex, 10) - 1; canvas.style.position = 'absolute'; canvas.style.pointerEvents = 'none'; ML.Animation.Utility.setOpacity(canvas, this.opacity); this.context.lineWidth = this.lineWidth; this.context.lineCap = 'round'; this.context.strokeStyle = this.strokeStyle; return false; } if(this.debug) { alert('Inexisting element "' + effect.element + '" of effect ' + this.animation.effect + ' "' + effect.type + '"'); } return true; }; this.step = function() { var p, angle; p = (new Date().getTime() - this.startTime)/(this.duration*1000.0); if(p>1) { p = 1; } if(effect.method === 'circle') { angle = p * p * (-2 * Math.PI + this.angleGap) - this.angle; drawEllipse(this.context, this.size.width/2, this.size.height/2, this.size.width/2 - this.lineWidth, this.size.height/2 - this.lineWidth, this.lastAngle, angle, true); this.lastAngle = angle; } else { if(effect.method === 'underline') { angle = -Math.PI / 2 - (1 - p * p) * this.angleGap; drawEllipse(this.context, this.size.width + this.lineWidth / 2, this.size.height + this.lineWidth / 2, this.size.height, this.size.height, this.lastAngle, angle, false); this.lastAngle = angle; } else { if(effect.method === 'double-underline') { if(p <= 0.5) { angle = -Math.PI / 2 - (1 - 4 * p * p) * this.angleGap; drawEllipse(this.context, this.size.width + this.lineWidth / 2, this.size.height + this.lineWidth / 2, this.size.height, this.size.height, this.lastAngle, angle, false); } else { angle = -Math.PI / 2 - (1 - 4 * (p - 0.5) * (p - 0.5)) * this.angleGap; if(this.lastStep < 0.5) { drawEllipse(this.context, this.size.width + this.lineWidth / 2, this.size.height + this.lineWidth / 2, this.size.height, this.size.height, this.lastAngle, -Math.PI / 2, false); this.lastAngle = -Math.PI / 2 - this.angleGap; } drawEllipse(this.context, this.size.width + this.lineWidth / 2, this.size.height + this.lineWidth * 2.5, this.size.height, this.size.height, this.lastAngle, angle, false); } this.lastAngle = angle; this.lastStep = p; } } } return(p < 1); }; }, FadeIn: function(effect) { this.node = null; this.opacity = 0; this.start = function() { this.node = document.getElementById(effect.element); if(this.node) { this.opacity = 0; ML.Animation.Utility.setOpacity(this.node, this.opacity); if(effect.visibility === 'display') { this.node.style.display = 'block'; } else { this.node.style.visibility = 'visible'; } return false; } if(this.debug) { alert('Inexisting element "' + effect.element + '" of effect ' + this.animation.effect + ' "' + effect.type + '"'); } return true; }; this.step = function() { var p, opacity; p = (new Date().getTime() - this.startTime)/(this.duration*1000.0); if(p>1) { p = 1; } opacity = Math.round(p * ML.Animation.fadeStep) / ML.Animation.fadeStep; if(opacity !== this.opacity) { this.opacity = opacity; ML.Animation.Utility.setOpacity(this.node, opacity); } return (p < 1); }; }, FadeOut: function(effect) { this.node = null; this.opacity = 0; this.start = function() { this.node = document.getElementById(effect.element); if(this.node) { this.opacity = 1.0; ML.Animation.Utility.setOpacity(this.node, this.opacity); return false; } if(this.debug) { alert('Inexisting element "' + effect.element + '" of effect ' + this.animation.effect + ' "' + effect.type + '"'); } return true; }; this.step = function() { var p, opacity, step; p = (new Date().getTime() - this.startTime)/(this.duration*1000.0); if(p>1) { p = 1; } opacity = Math.round((1.0 - p) * ML.Animation.fadeStep) / ML.Animation.fadeStep; if(opacity !== this.opacity) { this.opacity = opacity; ML.Animation.Utility.setOpacity(this.node, opacity); } step = p < 1; if(!step) { if(effect.visibility === 'display') { this.node.style.display = 'none'; } else { this.node.style.visibility = 'hidden'; } } return step; }; }, Hide: function(effect) { this.start = function() { var e = document.getElementById(effect.element); if(e) { if(effect.visibility === 'display') { e.style.display = 'none'; } else { e.style.visibility = 'hidden'; } } else { if(this.debug) { alert('Inexisting element "' + effect.element + '" of effect ' + this.animation.effect + ' "' + effect.type + '"'); } } return true; }; }, MakeVisible: function(effect) { this.startX = 0; this.startY = 0; this.start = function() { var viewport, e = document.getElementById(effect.element); if(e) { viewport = ML.Animation.Utility.getWindowViewport(); this.startX = viewport.x; this.startY = viewport.y; } else { if(this.debug) { alert('Inexisting element "' + effect.element + '" of effect ' + this.animation.effect + ' "' + effect.type + '"'); } } return false; }; this.step = function() { var p, e, viewport, position, size, x, y, limit; e = document.getElementById(effect.element); viewport = ML.Animation.Utility.getWindowViewport(); position = ML.Animation.Utility.getElementPosition(e); size = ML.Animation.Utility.getElementSize(e, false); x = viewport.x; limit = position.x + size.width - viewport.width; if(limit > x) { x = limit; } if(x > position.x) { x = position.x; } y = viewport.y; limit = position.y + size.height - viewport.height; if(limit > y) { y = limit; } if(y > position.y) { y = position.y; } if(x === viewport.x && y === viewport.y) { return false; } p = (new Date().getTime() - this.startTime)/(this.duration*1000.0); if(p>1) { p = 1; } x = this.startX + Math.round((x - this.startX) * p * p); y = this.startY + Math.round((y - this.startY) * p * p); window.scrollTo(x, y); return (p !== 1); }; }, PrependContent: function(effect) { this.start = function() { var e = document.getElementById(effect.element); if(e) { e.innerHTML = effect.content + e.innerHTML; } else { if(this.debug) { alert('Inexisting element "' + effect.element + '" of effect ' + this.animation.effect + ' "' + effect.type + '"'); } } return true; }; }, ProgressNumber: function(effect) { this.element = null; this.startNumber = 0; var formatNumber = function(value) { var prefix, formatted, modulus; if(!effect.thousandsSeparator || effect.thousandsSeparator.length === 0) { return value; } formatted = ''; if(value < 0) { prefix = '-'; value = Math.abs(value); } else { prefix = ''; } while(true) { modulus = value % 1000; if(formatted.length) { formatted = effect.thousandsSeparator + formatted; } formatted = modulus + formatted; if(value === modulus) { break; } if(modulus < 100) { if(modulus < 10) { formatted = '00' + formatted; } else { formatted = '0' + formatted; } } value = (value - modulus) / 1000; } return prefix + formatted; }; this.start = function() { this.element = document.getElementById(effect.element); if(!this.element) { if(this.debug) { alert('Inexisting container element "' + effect.element + '" of effect ' + this.animation.effect + ' "' + effect.type + '"'); } return true; } if(effect.start) { this.startNumber = effect.start; } this.element.innerHTML = formatNumber(Math.round(this.startNumber)); return false; }; this.step = function() { var p = (new Date().getTime() - this.startTime)/(this.duration*1000.0); if(p>1) { p = 1; } this.element.innerHTML = formatNumber(Math.round(this.startNumber + (effect.end - this.startNumber) * p * p)); return p < 1; }; }, ReplaceContent: function(effect) { this.start = function() { var e = document.getElementById(effect.element); if(e) { e.innerHTML = effect.content; } else { if(this.debug) { alert('Inexisting element "' + effect.element + '" of effect ' + this.animation.effect + ' "' + effect.type + '"'); } } return true; }; }, Show: function(effect) { this.start = function() { var e = document.getElementById(effect.element); if(e) { if(effect.visibility === 'display') { e.style.display = 'block'; } else { e.style.visibility = 'visible'; } } else { if(this.debug) { alert('Inexisting element "' + effect.element + '" of effect ' + this.animation.effect + ' "' + effect.type + '"'); } } return true; }; }, SlideIn: function(effect) { this.node = this.parent = this.edge = this.size = this.oldEdge = this.oldPosition = null; this.start = function() { var size; this.node = document.getElementById(effect.element); if(this.node) { this.parent = document.createElement('div'); this.parent.style.overflow = 'hidden'; this.node.style.display = 'block'; size = ML.Animation.Utility.getElementSize(this.node, false); switch(effect.edge) { case 'top': this.edge = this.size = size.height; this.oldEdge = this.node.style.bottom; this.node.style.bottom = this.edge + 'px'; this.parent.style.height = '0'; break; case 'bottom': this.edge = this.size = size.height; this.oldEdge = this.node.style.top; this.node.style.top = this.edge + 'px'; this.parent.style.height = '0'; break; case 'left': this.edge = this.size = size.width; this.oldEdge = this.node.style.right; this.node.style.right = this.edge + 'px'; this.parent.style.width = '0'; break; case 'right': this.edge = this.size = size.width; this.oldEdge = this.node.style.left; this.node.style.left = this.edge + 'px'; this.parent.style.width = '0'; break; default: if(this.debug) { alert('Invalid ' + effect.type + ' effect edge "' + effect.edge); this.parent = null; return true; } } this.oldPosition = this.node.style.position; this.node.style.position = 'relative'; this.node.parentNode.insertBefore(this.parent, this.node); this.node.parentNode.removeChild(this.node); this.parent.appendChild(this.node); return false; } if(this.debug) { alert('Inexisting element "' + effect.element + '" of effect ' + this.animation.effect + ' "' + effect.type + '"'); } return true; }; this.step = function() { var p, edge, step; p = (new Date().getTime() - this.startTime)/(this.duration*1000.0); if(p>1) { p = 1; } edge = Math.round(this.size * (1 - p * p)); if(edge !== this.edge) { this.edge = edge; switch(effect.edge) { case 'top': this.node.style.bottom = this.edge + 'px'; this.parent.style.height = (this.size - this.edge) + 'px'; break; case 'bottom': this.node.style.top = this.edge + 'px'; this.parent.style.height = (this.size - this.edge) + 'px'; break; case 'left': this.node.style.right = this.edge + 'px'; this.parent.style.width = (this.size - this.edge) + 'px'; break; case 'right': this.node.style.left = this.edge + 'px'; this.parent.style.width = (this.size - this.edge) + 'px'; break; } } step = (p < 1); if(!step) { this.parent.removeChild(this.node); this.parent.parentNode.insertBefore(this.node, this.parent); switch(effect.edge) { case 'top': this.node.style.bottom = this.oldEdge; break; case 'bottom': this.node.style.top = this.oldEdge; break; case 'left': this.node.style.right = this.oldEdge; break; case 'right': this.node.style.left = this.oldEdge; break; } this.node.style.position = this.oldPosition; this.parent.parentNode.removeChild(this.parent); this.parent = null; } return step; }; }, SlideOut: function(effect) { this.node = this.parent = this.edge = this.size = this.oldEdge = this.oldPosition = null; this.start = function() { var size; this.node = document.getElementById(effect.element); if(this.node) { this.parent = document.createElement('div'); this.parent.style.overflow = 'hidden'; this.node.style.display = 'block'; size = ML.Animation.Utility.getElementSize(this.node, false); switch(effect.edge) { case 'top': this.edge = this.size = size.height; this.parent.style.height = size.height + 'px'; this.oldEdge = this.node.style.bottom; this.node.style.bottom = this.edge + 'px'; break; case 'bottom': this.edge = this.size = size.height; this.parent.style.height = size.height + 'px'; this.oldEdge = this.node.style.top; this.node.style.top = this.edge + 'px'; break; case 'left': this.edge = this.size = size.width; this.parent.style.width = size.width + 'px'; this.oldEdge = this.node.style.right; this.node.style.right = this.edge + 'px'; break; case 'right': this.edge = this.size = size.width; this.parent.style.width = size.width + 'px'; this.oldEdge = this.node.style.left; this.node.style.left = this.edge + 'px'; break; default: if(this.debug) { alert('Invalid ' + effect.type + ' effect edge "' + effect.edge); this.parent = null; return true; } } this.oldPosition = this.node.style.position; this.node.style.position = 'relative'; this.node.parentNode.insertBefore(this.parent, this.node); this.node.parentNode.removeChild(this.node); this.parent.appendChild(this.node); return false; } if(this.debug) { alert('Inexisting element "' + effect.element + '" of effect ' + this.animation.effect + ' "' + effect.type + '"'); } return true; }; this.step = function() { var p, edge, step; p = (new Date().getTime() - this.startTime)/(this.duration*1000.0); if(p>1) { p = 1; } edge = Math.round(this.size * p * p); if(edge !== this.edge) { this.edge = edge; switch(effect.edge) { case 'top': this.node.style.bottom = this.edge + 'px'; this.parent.style.height = (this.size - this.edge) + 'px'; break; case 'bottom': this.node.style.top = this.edge + 'px'; this.parent.style.height = (this.size - this.edge) + 'px'; break; case 'left': this.node.style.right = this.edge + 'px'; this.parent.style.width = (this.size - this.edge) + 'px'; break; case 'right': this.node.style.left = this.edge + 'px'; this.parent.style.width = (this.size - this.edge) + 'px'; break; } } step = (p < 1); if(!step) { this.parent.removeChild(this.node); this.parent.parentNode.insertBefore(this.node, this.parent); switch(effect.edge) { case 'top': this.node.style.bottom = this.oldEdge; break; case 'bottom': this.node.style.top = this.oldEdge; break; case 'left': this.node.style.right = this.oldEdge; break; case 'right': this.node.style.left = this.oldEdge; break; } this.node.style.position = this.oldPosition; this.parent.parentNode.removeChild(this.parent); this.parent = null; this.node.style.display = 'none'; } return step; }; }, Wait: function(effect) { this.start = function() { return false; }; this.step = function() { return (new Date().getTime() - this.startTime < this.duration*1000.0); }; } }; ML.Animation.registerEffects = function(name, effects) { if(ML.Animation.Effects[name] !== undefined) { return false; } ML.Animation.Effects[name] = effects; return true; }; } if(ML.Animation.Animate === undefined) { ML.Animation.animations = []; ML.Animation.running = 0; ML.Animation.poll = null; ML.Animation.frameRate = 120; ML.Animation.fadeStep = 100; ML.Animation.defaultDuration = 1; ML.Animation.cancelAnimation = function(animation) { ML.Animation.animations[animation.animation] = null; if(--ML.Animation.running === 0) { clearInterval(ML.Animation.poll); ML.Animation.poll = null; } }; ML.Animation.Animate = function() { var advanceAnimation, stepEffects, startEffect; advanceAnimation = function(animation) { animation.running = false; if(++animation.effect < animation.definition.effects.length) { startEffect(animation); } else { ML.Animation.cancelAnimation(animation); } }; stepEffects = function() { var a, animation, effect, step; for(a = 0; a<ML.Animation.animations.length; a++) { if(ML.Animation.animations[a] !== null && ML.Animation.animations[a].running) { animation = ML.Animation.animations[a]; effect = animation.definition.effects[animation.effect]; step = effect.effect.step(); if(!step) { advanceAnimation(animation); } } } }; startEffect = function(animation) { var effect = animation.definition.effects[animation.effect], type = effect.type, advance, e, timeout; if(ML.Animation.Effects[type] === undefined) { if(animation.definition.debug) { alert('Unsupported animation type "' + type + '"'); } advance = true; } else { e = effect.effect = new ML.Animation.Effects[type](effect); e.animation = animation; e.debug = animation.definition.debug; e.startTime = new Date().getTime(); e.duration = (effect.duration === undefined ? ML.Animation.defaultDuration : effect.duration); advance = e.start(); } if(advance) { effect.effect = null; advanceAnimation(animation); } else { if(ML.Animation.poll === null) { timeout = 1000 / ML.Animation.frameRate; ML.Animation.poll = setInterval(stepEffects, timeout < 1 ? 1 : timeout); } animation.running = true; } }; this.addAnimation = function(animation) { var a = ML.Animation.animations.length; ML.Animation.animations[a] = { definition: animation, animation: a, effect: 0, running: false }; ML.Animation.running++; startEffect(ML.Animation.animations[a]); return a; }; }; } //]]> </script> </head> <body> <div id="fb-root"></div> <!-- Start AdSense page level ads --> <script async data-src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2951707118576741" crossorigin="anonymous" data-loading="lazy"></script> <!-- End AdSense page level ads --> <!-- Start of Sticky BuySellAds --> <script async data-src="//m.servedby-buysellads.com/monetization.js" data-loading="lazy"></script> <script> window.addEventListener("load", (event) => { (function () { if (typeof _bsa !== "undefined" && _bsa) { _bsa.init("stickybox", "CK7DPK3E", "placement:phpclassesorg"); } })(); }); </script> <!-- End of Sticky BuySellAds --> <div id="MainContainer"> <div id="TopLine"></div> <div id="Container"> <div id="UserContent"> <div class="c1025" id="user-bar"><div id="user"><table width="100%" style="margin-bottom: 6px; " cellpadding="4" cellspacing="0" align="center"> <tr> <td width="49.5%" style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><a href="/login.html?page=oauth-api">Login</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><a href="/register.html?page=oauth-api">Register</a></td> <td width="49.5%" style=" white-space: nowrap ; padding: 1px"> </td> </tr> </table> </div></div> <div class="u1025 responsive-menu"><form style="margin: 0" action="/search.html" method="get" onsubmit="this['q'].value = this['words'].value;"> <div id="navigation-menu"><input type="checkbox" id="navigation-button"><div class="menu-items"><div><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="All class groups" style="border: 0; vertical-align: middle"> <a href="/browse/">All class groups</a></div> <div><img src="https://files.phpclasses.org/graphics/phpclasses/latest.png" width="24" height="24" loading="lazy" alt="Latest entries" style="border: 0; vertical-align: middle"> <a href="/browse/latest/latest.html">Latest entries</a></div> <div><img src="https://files.phpclasses.org/graphics/phpclasses/top.png" width="24" height="24" loading="lazy" alt="Top 10 charts" style="border: 0; vertical-align: middle"> <a href="/browse/top/top.html">Top 10 charts</a></div> <div><img src="https://files.phpclasses.org/graphics/phpclasses/blog.png" width="24" height="24" loading="lazy" alt="Blog" style="border: 0; vertical-align: middle"> <a href="/blog/">Blog</a></div> <div><img src="https://files.phpclasses.org/graphics/phpclasses/forum.png" width="24" height="24" loading="lazy" alt="Forums" style="border: 0; vertical-align: middle"> <a href="/discuss/">Forums</a></div> <div><img src="https://files.phpclasses.org/graphics/phpclasses/shop.png" width="24" height="24" loading="lazy" alt="Shop" style="border: 0; vertical-align: middle"> <a href="/shop/">Shop</a></div> <div><img src="https://files.phpclasses.org/graphics/phpclasses/help.png" width="24" height="24" loading="lazy" alt="Help" style="border: 0; vertical-align: middle"> <a href="/faq/">Help</a></div> </div><label for="navigation-button" id="navigation-label"><span class="drop-icon"><img src="https://files.phpclasses.org/graphics/phpclasses/menu.png" width="24" height="24" loading="lazy" alt="Navigation menu" style="border: 0"></span></label></div><a href="/"><img src="https://files.phpclasses.org/graphics/phpclasses/logo-small-phpclasses.svg" width="75" height="24" loading="lazy" alt="logo small" style="vertical-align: top"></a><div id="user-menu"><input type="checkbox" id="user-button"><div class="menu-items"><div><a href="/login.html?page=oauth-api">Login</a></div> <div><a href="/register.html?page=oauth-api">Register</a></div> </div><label for="user-button" id="user-label"><span class="drop-icon"><img src="https://files.phpclasses.org/graphics/phpclasses/user-menu.png" width="24" height="24" loading="lazy" alt="User menu" style="border: 0"></span></label></div><div class="search-input"><input type="text" name="words" size="16" placeholder="Search" style="margin-left: 5px; margin-right: 5px"> <input type="hidden" name="q"> <input type="image" src="https://files.phpclasses.org/graphics/phpclasses/search.png" align="middle" style="width: 24px; height: 24px;" alt="Search"></div><input type="hidden" name="go_search" value="1"> </form></div> </div> <div id="logoPHP" class="c1025"> <div id="logoContainer"><a href="/"><img src="https://files.phpclasses.org/graphics/phpclasses/logo-phpclasses.png" width="180" height="60" loading="lazy" alt="PHP Classes" style="border: 0"></a></div> <div id="topAds"></div> </div> <div id="PageContent"> <div id="Top"> <h1>PHP OAuth Library: Authorize and access APIs using OAuth</h1> <div id="subtitle"></div> </div> <div id="PageInfo"> <div class="c1025"><div id="navigation"><form style="margin: 0" action="/search.html" method="get" onsubmit="this['q'].value = this['words'].value;"> <table width="100%" style="margin-bottom: 6px; " cellpadding="4" cellspacing="0" align="center"> <tr> <td width="49.5%" style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><a href="/search.html">Search</a> <div class="search-input"><input type="text" name="words" size="16" placeholder="Search" style="margin-left: 5px; margin-right: 5px"> <input type="hidden" name="q"> <input type="image" src="https://files.phpclasses.org/graphics/phpclasses/search.png" align="middle" style="width: 24px; height: 24px;" alt="Search"></div></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="All class groups" style="border: 0; vertical-align: middle"> <a href="/browse/">All class groups</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/latest.png" width="24" height="24" loading="lazy" alt="Latest entries" style="border: 0; vertical-align: middle"> <a href="/browse/latest/latest.html">Latest entries</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/top.png" width="24" height="24" loading="lazy" alt="Top 10 charts" style="border: 0; vertical-align: middle"> <a href="/browse/top/top.html">Top 10 charts</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/blog.png" width="24" height="24" loading="lazy" alt="Blog" style="border: 0; vertical-align: middle"> <a href="/blog/">Blog</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/forum.png" width="24" height="24" loading="lazy" alt="Forums" style="border: 0; vertical-align: middle"> <a href="/discuss/">Forums</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/shop.png" width="24" height="24" loading="lazy" alt="Shop" style="border: 0; vertical-align: middle"> <a href="/shop/">Shop</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/help.png" width="24" height="24" loading="lazy" alt="Help" style="border: 0; vertical-align: middle"> <a href="/faq/">Help</a></td> <td width="49.5%" style=" white-space: nowrap ; padding: 1px"> </td> </tr> </table> <input type="hidden" name="go_search" value="1"> </form></div></div> <div class="c1025"><div id="recommendpage"><div id="recommendpagecontainer"><table cellspacing="2" cellpadding="0" align="center"> <tr> <td class="tabcontent box light"><a href="https://www.phpclasses.org/recommend_page.html?title=PHP+OAuth+Library%3A+Authorize+and+access+APIs+using+OAuth&page=%2Foauth-api">Recommend</a> this page to a friend!</td> </tr> </table></div></div> </div> <div> <div class="InfoContent"></div> <div id="ads"></div> <div class="BodyContent"> <div class="BodyColumn"></div> <div id="BodyContent" class="InfoContent"><!-- body_start --><!--htdig_noindex--><noscript> <style type="text/css"> dynamicHide { display: block } dynamicInvisible { visibility: visible } </style> </noscript> <script type="text/javascript"><!-- document.write("<" + "style type=\"text/css\">\n.dynamicHide { display: none }\n.dynamicInvisible { visibility: hidden }\n<" + "/style>"); // --></script> <!--/htdig_noindex--><!--htdig_noindex--> <div class="package-show-width-640"><table width="100%" style="margin-bottom: 6px; " cellpadding="4" cellspacing="0"> <tr> <td width="1%" class="nbgu"> </td> <td class="nblu"><div style="text-align: left; position: relative"><div id="package-menu"><input type="checkbox" id="package-button"><div class="menu-items"><div><a onclick="nb.switchTab("information")"><span class="tab">Info</span> </a></div> <div><a onclick="nb.switchTab("usage"); if(vu.loadedFile === null ) { nav.loadFile(vu, nb, 42010, "usage_file", null, "usage"); } ; return false"><span class="tab"><span id="loading_usage_file"></span>Example</span></a></div> <div><a onclick="nb.switchTab("screenshots"); return false"><span class="tab" title="Screenshots"><span id="loading_video"></span> Screenshots</span></a></div> <div><a onclick="nb.switchTab("view_files", vc.previous); return false"><span class="tab"><span id="loading_file"><img src="https://files.phpclasses.org/graphics/phpclasses/directory.png" width="24" height="24" loading="lazy" alt="View files" style="border: 0; vertical-align: middle"></span> Files</span></a></div> <div><a onclick="nb.switchTab("reputation"); return false"><span class="tab" id="reputation_label">Reputation</span></a></div> <div><a onclick="nb.switchTab('links'); return false"><span class="tab" id="links_label">Links</span></a></div> </div><label for="package-button" id="package-label"><span class="drop-icon"><img src="https://files.phpclasses.org/graphics/phpclasses/menu.png" width="24" height="24" loading="lazy" alt="Package menu" style="border: 0"></span></label></div></div></td> <td class="nbgu"> </td> <td class="nbtu" id="menu_tab_download" onclick="nb.switchTab("download")"><img src="https://files.phpclasses.org/graphics/phpclasses/down-medium.png" width="36" height="36" loading="lazy" alt="Download" style="border: 0; vertical-align: middle"> <span class="tab" id="download_label">Download</span></td> <td width="98%" class="nbgu"> </td> </tr> </table> </div><div class="package-cut-width-640"><table width="100%" style="margin-bottom: 6px; " cellpadding="4" cellspacing="0"> <tr> <td width="1%" class="nbgu"> </td> <td class="nblu" id="tab_information" onclick="nb.switchTab("information")"><span class="tab">Info</span> </td> <td class="nbgu"> </td> <td class="nbtu" id="tab_usage" onclick="nb.switchTab("usage"); if(vu.loadedFile === null ) { nav.loadFile(vu, nb, 42010, "usage_file", null, "usage"); } ; return false"><span class="tab"><span id="loading_usage_file"></span>Example</span></td> <td class="nbgu"> </td> <td class="package-cell-cut-full-width nbtu" id="tab_screenshots" onclick="nb.switchTab("screenshots"); return false"><span class="tab" title="Screenshots"><span id="loading_video"></span> Screenshots</span></td> <td class="package-cell-cut-full-width nbgu"> </td> <td class="nbtu" id="tab_view_files" onclick="nb.switchTab("view_files", vc.previous); return false"><span class="tab"><span id="loading_file"><img src="https://files.phpclasses.org/graphics/phpclasses/directory.png" width="24" height="24" loading="lazy" alt="View files" style="border: 0; vertical-align: middle"></span> Files</span></td> <td class="nbgu"> </td> <td class="nbtu" id="tab_install" onclick="nb.switchTab("install")"><img src="https://files.phpclasses.org/graphics/phpclasses/composer-medium.png" width="36" height="36" loading="lazy" alt="Install with Composer" style="border: 0; vertical-align: middle"> <span class="tab" id="install_label">Install with Composer</span></td> <td class="nbgu"> </td> <td class="nbtu" id="tab_download" onclick="nb.switchTab("download")"><img src="https://files.phpclasses.org/graphics/phpclasses/down-medium.png" width="36" height="36" loading="lazy" alt="Download" style="border: 0; vertical-align: middle"> <span class="tab" id="download_label">Download</span></td> <td class="nbgu"> </td> <td class="package-cell-cut-width-800 nbtu" id="tab_reputation" onclick="nb.switchTab("reputation"); return false"><span class="tab" id="reputation_label">Reputation</span></td> <td class="package-cell-cut-width-800 nbgu"> </td> <td class="package-cell-cut-full-width nbtu" id="tab_forum"><a class="tab" href="/discuss/package/7700/" title="Ask for help to this package author"> Support forum</a></td> <td class="package-cell-cut-full-width nbgu"> </td> <td class="package-cell-cut-full-width nbtu" id="tab_blog"><a class="tab" href="/blog/package/7700/" title="Read articles about this package"> Blog</a></td> <td class="package-cell-cut-full-width nbgu"> </td> <td class="package-cell-cut-full-width nbtu" id="tab_links" onclick="nb.switchTab('links'); return false"><span class="tab" id="links_label">Links</span></td> <td width="98%" class="nbgu"> </td> </tr> </table> </div><!--/htdig_noindex--> <div id="heightcontainer"><div id="content_information" class=""><!--htdig_noindex--><table cellspacing="0" style="width: 100%"><tr><td class="ct tabcontent package-cell-cut-width-500">Last Updated</td><td class="cg package-cell-cut-width-500"> </td><td class="ct tabcontent" width="1%" colspan="3">Ratings</td><td class="cg"> </td><td class="ct tabcontent package-cell-cut-width-640" width="1%">Unique User Downloads</td><td class="cg package-cell-cut-width-640"> </td><td class="ct tabcontent package-cell-cut-full-width" width="1%">Download Rankings</td></tr><tr><td class="cd package-cell-cut-width-500" nowrap="nowrap" style="text-align: center"><a target="_blank" href="/browse/feed/changes/package/7700.rss" title="Subscribe to this package changes RSS feed">2024-11-09</a> (22 days ago) <a target="_blank" href="/browse/feed/changes/package/7700.rss" title="Subscribe to this package changes RSS feed"><img src="https://files.phpclasses.org/graphics/phpclasses/rss2.png" width="24" height="24" loading="lazy" alt="RSS 2.0 feed" style="border: 0; vertical-align: middle"></a></td><td class="cg package-cell-cut-width-500"></td><td class="cd" nowrap="nowrap" colspan="3" style="text-align: center"><span title="Sufficient"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span> <a href="" title="View the user ratings details" onclick="nav.switchRatings(); return false;"><span class="ranking">72%</span></a></td><td class="cg"></td><td class="cd package-cell-cut-width-640" nowrap="nowrap" style="text-align: center"><b>Total:</b> <span class="ranking">26,740</span> <b>This week:</b> <span class="ranking">2</span></td><td class="cg package-cell-cut-width-640"></td><td class="cd package-cell-cut-full-width" nowrap="nowrap" style="text-align: center"><b>All time:</b> <a href="" title="View the package ranking details" onclick="nav.switchRankings(); return false;"><span class="ranking">19</span></a> <b>This week:</b> <span class="ranking">30</span><img src="https://files.phpclasses.org/graphics/phpclasses/down.png" width="24" height="24" loading="lazy" alt="Down" style="border: 0; vertical-align: middle"></td></tr></table><!--/htdig_noindex--><table cellspacing="0" style="width: 100%; margin-top: 4px"><tr><!--htdig_noindex--><td class="ct tabcontent">Version</td><td class="cg"> </td><td class="ct tabcontent">License</td><td class="cg"> </td><td class="ct tabcontent package-cell-cut-width-640">PHP version</td><td class="cg package-cell-cut-width-640"> </td><td class="ct tabcontent package-cell-cut-width-500">Categories</td></tr><tr><td class="cd" nowrap="nowrap" style="text-align: center"><tt>oauth-api</tt> 1.0.138</td><td class="cg"></td><td class="cd" nowrap="nowrap" style="text-align: center"><a title="BSD License" href="http://www.opensource.org/licenses/bsd-license.html" target="_blank" rel="noopener noreferer">BSD License</a></td><td class="cg"></td><td class="cd package-cell-cut-width-640" nowrap="nowrap" style="text-align: center">5.2</td><td class="cg package-cell-cut-width-640"></td><!--/htdig_noindex--><td class="cd package-cell-cut-width-500" nowrap="nowrap" style="text-align: center"><b><a title="Classes using PHP 5 specific features" href="/browse/class/8.html">PHP 5</a></b>, <b><a title="User records, authentication and session handling" href="/browse/class/21.html">User Management</a></b>, <b><a title="Web data clipping, SOAP or XML-RPC clients and servers" href="/browse/class/33.html">Web services</a></b></td></tr></table><table cellspacing="0"><!--htdig_noindex--><tr><td class="nbpu"></td></tr><tr><td class="ct tabcontent"><!--htdig_noindex-->Description<!--/htdig_noindex--></td><td class="cg"> </td><td class="ct tabcontent"><!--htdig_noindex--><p><b>Author</b></p><div class="u799"><a href="/browse/author/1.html">Manuel Lemos</div><!--/htdig_noindex--></td></tr><!--/htdig_noindex--><tr><td width="50%" style="vertical-align: top; padding: 0"><div class="cd" style="max-height: 600px; overflow: auto"><p>This class can authorize the access of users to an API using the OAuth protocol.<br /> <br /> It abstracts OAuth1 (1.0 and 1.0a) and OAuth2 in the same class, so you can use the same code to authorize the access on behalf of the current user any API that supports any version of the OAuth protocol.<br /> <br /> It works on Linux, Windows and any other platform without the PECL PHP OAuth extension.<br /> <br /> The access tokens are stored by default in session variables, but there are sub-classes specialized in storing the tokens in database tables, files or cookies.<br /> <br /> It provides built-in support to several popular OAuth servers, so you do not have to configure the class manually with all OAuth server specific details.<br /> <br /> Currently it provides built-in support for many OAuth servers. Every other OAuth server is supported setting end point URLs and other parameters using specific class variables. Additional servers may be supported without changing the main class by configuring a separate JSON configuration file.<br /> <br /> The class can also send requests to API using the previously obtained OAuth access token.<br /> <br /> It also supports 2 legged API access, so it can send signed API requests that do not require user authorization.<br /> <br /> For mobile or other applications that the user cannot be redirected back to the client application site, this class supports pin based authorization either using OAuth 1.0a or OAuth 2.0.<br /> <br /> It can as well obtain access tokens for specific users given their user name and password or using client credentials. It supports OAuth 2.0 authorization flows authorization_code, password and client_credentials.<br /> <br /> For servers that support offline access like Google and Box.net, the class can also verify if the access token expired and refresh the token value before sending an API call, without requiring the user presence.<br /> <br /> For servers that support re-authentication like Facebook, the class may also force the user to enter this application password on the authorization page.<br /> <br /> For servers that support revoking access tokens, the class supports this functionality to invalidate a previously retrieved token.<br /> <br /> For OpenID Connect servers based on OAuth2, the class decoded and returns the id_token JSON Web Token (JWT), so applications can use the user details such as name and email returned in the id_token response.<br /> <br /> Here is the list of OAuth servers that have built-in support and tutorial example scripts:<br /> <br /> - 37Signals<br /> - Amazon<br /> - AOL<br /> - Bitbucket<br /> - Bitly<br /> - Box<br /> - Buffer<br /> - CharterSpectrum<br /> - CharterSpectrumQA (CharterSpectrum Quality Assurance)<br /> - Copy<br /> - Dailymotion<br /> - Discogs<br /> - Disqus<br /> - Dropbox (Dropbox with OAuth 1.0)<br /> - Dropbox2 (Dropbox with OAuth 2.0)<br /> - Etsy<br /> - Eventful<br /> - Facebook<br /> - Fitbit<br /> - Flickr<br /> - Foursquare<br /> - Garmin<br /> - github<br /> - Google<br /> - Google1 (Google with OAuth 1.0)<br /> - iHealth<br /> - iHealthSandbox<br /> - imgur<br /> - Infusionsoft<br /> - Instagram<br /> - Intuit<br /> - Jawbone<br /> - LinkedIn<br /> - LinkedIn2 (LinkedIn with OAuth 2.0)<br /> - mail.ru<br /> - MailChimp<br /> - Mavenlink<br /> - Meetup<br /> - Microsoft<br /> - Misfit<br /> - oDesk<br /> - Odnoklassniki<br /> - Paypal<br /> - PaypalApplication<br /> - Pinterest<br /> - Pipedrive<br /> - Polar<br /> - Quire<br /> - Rdio<br /> - Reddit<br /> - RunKeeper<br /> - Salesforce<br /> - Scoop.it<br /> - StockTwits<br /> - SurveyMonkey<br /> - TeamViewer<br /> - Tumblr<br /> - Twitter<br /> - Vimeo<br /> - VK<br /> - Withings<br /> - Wordpress<br /> - Xero<br /> - XING<br /> - Yahoo<br /> - Yahoo2<br /> - Yammer<br /> - Yandex</p></div></td><td class="cg"></td><!--htdig_noindex--><td width="50%" style="vertical-align: top; padding: 0"><div class="cd"><table width="100%"> <tr> <td width="1%" valign="top" style="text-align: center; padding: 8px"><span class="c799"><img class="photo" src="https://files.phpclasses.org/picture/user/1.jpg" width="90" height="120" alt="Picture of Manuel Lemos" title="Picture of Manuel Lemos" loading="lazy"></span><div class="picture-user-name"><span class="c799"><a href="/browse/author/1.html" rel="author">Manuel Lemos</a></span></div></td> <td class="tabbed-author-details" valign="top"><!--htdig_noindex--> <table width="100%" style="margin-bottom: 6px; " cellpadding="4" cellspacing="0"> <tr> <td width="49.5%" class="nbgu"> </td> <td class="nblu nblu" id="author_tab_performance" onclick="ab.switchTab("performance")"><span class="tab">Performance</span></td> <td class="nbgu"> </td> <td class="nbtu nbtu" id="author_tab_level" onclick="ab.switchTab("level")"><span class="tab">Level</span></td> <td width="49.5%" class="nbgu"> </td> </tr> </table> <!--/htdig_noindex--> <div id="author_container"><div id="author_content_performance"><table width="100%" cellspacing="0" cellpadding="2"> <tr class="even"> <th align="right" WIDTH="1%" nowrap="nowrap">Name:</th> <td colspan="2"> <b><span itemprop="name">Manuel Lemos</span></b> is available for providing paid consulting. Contact <a href="/professionals/profile/19461/"><span itemprop="name">Manuel Lemos</span></a> .</td> </tr> <tr class="odd"> <th align="right" width="1%" nowrap="nowrap">Classes:</th> <td nowrap="nowrap" colspan="2"> 45 packages by <a href="/browse/author/1.html" rel="author">Manuel Lemos</a></td> </tr> <tr class="even"> <th align="right" width="1%" nowrap="nowrap">Country:</th> <td nowrap="nowrap" colspan="3"><img style="vertical-align: top; width: 24px; height: 16px;" src="https://files.phpclasses.org/graphics/countryflags/PT.png" alt="Portugal" title="Portugal" loading="lazy"> <a href="/browse/country/pt/">Portugal</a></td> </tr> <tr class="odd"> <th align="right" width="1%" nowrap="nowrap">Age:</th> <td nowrap="nowrap" colspan="2">56</td> </tr> <tr class="even"> <th align="right" width="1%" nowrap="nowrap">All time rank:</th> <td nowrap="nowrap" width="1%">1</td><td></td> </tr> <tr class="odd"> <th align="right" width="1%" nowrap="nowrap">Week rank:</th> <td nowrap="nowrap" width="1%">5 <img src="https://files.phpclasses.org/graphics/phpclasses/down.png" width="24" height="24" loading="lazy" alt="Down" style="border: 0; vertical-align: middle"></td><td nowrap="nowrap">1 in <a href="/browse/author/bycountry/country/pt/">Portugal</a> <img style="vertical-align: top; width: 24px; height: 16px;" src="https://files.phpclasses.org/graphics/countryflags/PT.png" alt="Portugal" title="Portugal" loading="lazy"> <img src="https://files.phpclasses.org/graphics/phpclasses/equal.png" width="24" height="24" loading="lazy" alt="Equal" style="border: 0; vertical-align: middle"></td> </tr> </table></div><div id="author_content_level"><p style="text-align: center"><a href="/status/user/1/"><span class="ranking">Level 3 <img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></a></p><p style="text-align: center"><img height="180" width="180" src="https://www.phpclasses.org/status/badge/growing-author/user/1/v/aabed7" loading="lazy"></p></div></div></td> </tr> </table> </div><br><div align="center" class="package-cut-width-640"><script type="text/javascript"><!-- cl.addContent({ content: '\x3c!-- PHPClasses-Below-The-Fold --\x3e\n\n\n\x3c!-- AdSense Below the fold --\x3e\n\x3cp\x3e \x3c\x2fp\x3e\n\x3cscript async data-src="https:\x2f\x2fpagead2.googlesyndication.com\x2fpagead\x2fjs\x2fadsbygoogle.js?client=ca-pub-2951707118576741" data-loading="lazy"\n crossorigin="anonymous"\x3e\x3c\x2fscript\x3e\n\x3c!-- PHP Classes below the fold --\x3e\n\x3cins class="adsbygoogle"\n style="display:inline-block;width:300px;height:250px"\n data-ad-client="ca-pub-2951707118576741"\n data-ad-slot="9106526349"\x3e\x3c\x2fins\x3e\n\x3cscript\x3e\n (adsbygoogle = window.adsbygoogle || []).push({});\n\x3c\x2fscript\x3e\n\x3c!-- End of AdSense DFP Below the fold --\x3e\n\n\n\x3c!-- End-PHPClasses-Below-The-Fold --\x3e\n', inline: false, width: 336, height: 280, priority: 1 }); // --></script> </div></td><!--/htdig_noindex--></tr></table><!--htdig_noindex--><h2>Recommendations</h2><!--/htdig_noindex--><div class="framed light" style="max-height: 600px; overflow: auto"><p><big><b><a href="/recommend/1388-Crawl-and-scrape-data-from-LinkedIn.html">I need a PHP class for LinkedIn data scraping</a></b></big><br>Crawl and scrape data from LinkedIn</p><p><big><b><a href="/recommend/662-Library-to-handle-OAuth-1-0-API-.html">PHP OAuth API for Etsy</a></b></big><br>Library to handle OAuth 1.0 API </p><p><big><b><a href="/recommend/1289-Make-payments-through-paytm-or-phonepe.html">What is the best PHP payment gateway integration class?</a></b></big><br>Make payments through paytm or phonepe</p><p><big><b><a href="/recommend/1241-Anonymous-visitor-identification-using-PHP.html">Grab email, contact number from anonymous Web site visitor</a></b></big><br>Anonymous visitor identification using PHP</p><p><big><b><a href="/recommend/1226-PHP-wrapper-class-for-sending-messages-through-PHP.html">What is the best PHP skype api send message class?</a></b></big><br>PHP wrapper class for sending messages through PHP</p><p><big><b><a href="/recommend/1177-i-need-linkedin-libaray-for-login.html">login with linked library</a></b></big><br>i need linkedin libaray for login</p><p><big><b><a href="/recommend/1127-Use-API-to-request-posts-then-process-results-and-save-to-mySQL.html">Collect data to save in mySQL database</a></b></big><br>Use API to request posts, then process results and save to mySQL</p><p><big><b><a href="/recommend/356-I-need-to-create-an-app-with-login-via-linkedin.html">Linkedin login</a></b></big><br>I need to create an app with login via linkedin</p><p><big><b><a href="/recommend/385-Interact-with-Google-Docs.html">Google Docs using PHP</a></b></big><br>Interact with Google Docs</p><p><big><b><a href="/recommend/1010-Not-allowing-gsuite-for-general-user.html">Oauth gsuite integration</a></b></big><br>Not allowing gsuite for general user</p><p><big><b><a href="/recommend/116-Integrate-Twitter-in-my-application.html">Retrieve Twitter user profile info</a></b></big><br>Integrate Twitter in my application</p><p><big><b><a href="/recommend/278-Facebook-login-to-my-website.html">What is the best PHP facebook login class?</a></b></big><br>Facebook login to my website</p><p><big><b><a href="/recommend/416-Login-using-credentials-from-a-social-site-such-as-Facebook-.html">PHP Class for Social login</a></b></big><br>Login using credentials from a social site such as Facebook </p><p><big><b><a href="/recommend/434-Would-like-some-example-of-usage-Facebook-login.html">What is the best PHP facebook login class?</a></b></big><br>Would like some example of usage Facebook login</p><p><big><b><a href="/recommend/713-Get-subscribers.html">What is the best PHP youtube api class?</a></b></big><br>Get subscribers</p><p><big><b><a href="/recommend/859-Hotelbeds-API-class.html">What is the best PHP hotelbeds api class?</a></b></big><br>Hotelbeds API class</p><p><big><b><a href="/recommend/838-oAuth-class-which-requires-http-client-in-PHP-7.html">What is the best PHP php7 oauth http client class?</a></b></big><br>oAuth class which requires http client in PHP 7</p><p><big><b><a href="/recommend/815-Working-example-of-using-the-API-to-add-a-task.html">What is the best PHP zurmo api class?</a></b></big><br>Working example of using the API to add a task</p><p><big><b><a href="/recommend/645-PHP-class-to-integrate-wit-ai-API.html">Integrate wit ai API</a></b></big><br>PHP class to integrate wit ai API</p><p><big><b><a href="/recommend/634-Subscribing-to-Fitbit-events-and-verify-subscriber.html">Fitbit Subscription API</a></b></big><br>Subscribing to Fitbit events and verify subscriber</p><p><big><b><a href="/recommend/590-Facebook-login-using-OAuth-2-0.html">How to login with Facebook?</a></b></big><br>Facebook login using OAuth 2.0</p><p><big><b><a href="/recommend/566-PHP-uploader-class-for-Flickr.html">What is the best PHP flickr uploading class?</a></b></big><br>PHP uploader class for Flickr</p><p><big><b><a href="/recommend/528-oAuth-2.html">What is the best PHP oauth class?</a></b></big><br>oAuth 2</p><p><big><b><a href="/recommend/517-I-need-to-get-the-last-5-facebook-posts.html">Get latest Facebook posts on timeline</a></b></big><br>I need to get the last 5 facebook posts</p><p><big><b><a href="/recommend/513-Automatically-post-in-Facebook-Simulating-Human.html">Facebook auto publish without Facebook app</a></b></big><br>Automatically post in Facebook Simulating Human</p><p><big><b><a href="/recommend/483-want-to-auto-post-status-from-my-site.html">What is the best PHP twitter auto post class?</a></b></big><br>want to auto post status from my site</p><p><big><b><a href="/recommend/417-Handle-files-using-Google-Drive-API-.html">Google Drive file management</a></b></big><br>Handle files using Google Drive API </p><p><big><b><a href="/recommend/297-Social-login-works-but-not-import-contacts-.html">Import Google contacts</a></b></big><br>Social login works but not import contacts </p><p><big><b><a href="/recommend/394-Create-an-own-API-works-together-with-other-social-network-APIs-.html">Developing an API with using Google and Facebook API</a></b></big><br>Create an own API works together with other social network APIs </p><p><big><b><a href="/recommend/121-I-am-getting-an-error-trying-to-get-property-of-non-object.html">Meetup OAuth connection code using PHP</a></b></big><br>I am getting an error trying to get property of non-object</p><p><big><b><a href="/recommend/81-Google-Custom-Search-engine-using-the-API-in-PHP.html">Google custom search engine using the API</a></b></big><br>Google Custom Search engine using the API in PHP</p></div><!--htdig_noindex--><div id="content_usage" class=""><!--htdig_noindex--><div><h2>Example</h2></div><!--/htdig_noindex--><div id="usage_file_data_content"><div style="max-height: 600px; overflow: auto"><div id="usage_file_data"><TABLE id="code_file" WIDTH="100%"> <TR> <TD class="framed light"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br> </span><span style="color: #808080">/*<br> * login_with_facebook.php<br> *<br> * @(#) $Id: login_with_facebook.php,v 1.7 2018/08/16 07:09:40 mlemos Exp $<br> *<br> */<br> <br> /*<br> * Get the http.php file from http://www.phpclasses.org/httpclient<br> */<br> </span><span style="color: #004000">require(</span><span style="color: #C00000">'http.php'</span><span style="color: #004000">);<br> require(</span><span style="color: #C00000">'oauth_client.php'</span><span style="color: #004000">);<br> <br> </span><span style="color: #0000BB">$client </span><span style="color: #004000">= new </span><span style="color: #0000BB">oauth_client_class</span><span style="color: #004000">;<br> </span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">debug </span><span style="color: #004000">= </span><span style="color: #0000BB">false</span><span style="color: #004000">;<br> </span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">debug_http </span><span style="color: #004000">= </span><span style="color: #0000BB">true</span><span style="color: #004000">;<br> </span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">server </span><span style="color: #004000">= </span><span style="color: #C00000">'Facebook'</span><span style="color: #004000">;<br> <br> </span><span style="color: #808080">// set the reauthenticate access only if you need to force the user to<br> // authenticate again even after the user has authorized the application<br> // before.<br> </span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">reauthenticate </span><span style="color: #004000">= </span><span style="color: #0000BB">false</span><span style="color: #004000">;<br> <br> </span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">redirect_uri </span><span style="color: #004000">= </span><span style="color: #C00000">'https://'</span><span style="color: #004000">.</span><span style="color: #0000BB">$_SERVER</span><span style="color: #004000">[</span><span style="color: #C00000">'HTTP_HOST'</span><span style="color: #004000">].<br> </span><span style="color: #0000BB">dirname</span><span style="color: #004000">(</span><span style="color: #0000BB">strtok</span><span style="color: #004000">(</span><span style="color: #0000BB">$_SERVER</span><span style="color: #004000">[</span><span style="color: #C00000">'REQUEST_URI'</span><span style="color: #004000">],</span><span style="color: #C00000">'?'</span><span style="color: #004000">)).</span><span style="color: #C00000">'/login_with_facebook.php'</span><span style="color: #004000">;<br> <br> </span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">client_id </span><span style="color: #004000">= </span><span style="color: #C00000">''</span><span style="color: #004000">; </span><span style="color: #0000BB">$application_line </span><span style="color: #004000">= </span><span style="color: #0000BB">__LINE__</span><span style="color: #004000">;<br> </span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">client_secret </span><span style="color: #004000">= </span><span style="color: #C00000">''</span><span style="color: #004000">;<br> <br> if(</span><span style="color: #0000BB">strlen</span><span style="color: #004000">(</span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">client_id</span><span style="color: #004000">) == </span><span style="color: #0000BB">0<br> </span><span style="color: #004000">|| </span><span style="color: #0000BB">strlen</span><span style="color: #004000">(</span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">client_secret</span><span style="color: #004000">) == </span><span style="color: #0000BB">0</span><span style="color: #004000">)<br> die(</span><span style="color: #C00000">'Please go to Facebook Apps page https://developers.facebook.com/apps , '</span><span style="color: #004000">.<br> </span><span style="color: #C00000">'create an application, and in the line '</span><span style="color: #004000">.</span><span style="color: #0000BB">$application_line</span><span style="color: #004000">.<br> </span><span style="color: #C00000">' set the client_id to App ID/API Key and client_secret with App Secret'</span><span style="color: #004000">);<br> <br> </span><span style="color: #808080">/* API permissions<br> */<br> </span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">scope </span><span style="color: #004000">= </span><span style="color: #C00000">'email,publish_actions,user_friends'</span><span style="color: #004000">;<br> if((</span><span style="color: #0000BB">$success </span><span style="color: #004000">= </span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">Initialize</span><span style="color: #004000">()))<br> {<br> if((</span><span style="color: #0000BB">$success </span><span style="color: #004000">= </span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">Process</span><span style="color: #004000">()))<br> {<br> if(</span><span style="color: #0000BB">strlen</span><span style="color: #004000">(</span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">access_token</span><span style="color: #004000">))<br> {<br> </span><span style="color: #0000BB">$success </span><span style="color: #004000">= </span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">CallAPI</span><span style="color: #004000">(<br> </span><span style="color: #C00000">'https://graph.facebook.com/v2.3/me?fields=id,first_name,gender,last_name,link,locale,name,timezone,updated_time,verified,email'</span><span style="color: #004000">, <br> </span><span style="color: #C00000">'GET'</span><span style="color: #004000">, array(), array(</span><span style="color: #C00000">'FailOnAccessError'</span><span style="color: #004000">=></span><span style="color: #0000BB">true</span><span style="color: #004000">), </span><span style="color: #0000BB">$user</span><span style="color: #004000">);<br> </span><span style="color: #808080">/*<br> if($success)<br> {<br> // Get Friends that use the same application<br> <br> $success = $client->CallAPI(<br> 'https://graph.facebook.com/v2.3/me/friends', <br> 'GET', array(), array('FailOnAccessError'=>true), $friends);<br> }<br> */<br> </span><span style="color: #004000">if(</span><span style="color: #0000BB">$success</span><span style="color: #004000">)<br> {<br> </span><span style="color: #808080">// Requires publish_actions permissions and your application needs to be submitted for review<br> </span><span style="color: #0000BB">$values </span><span style="color: #004000">= array(<br> </span><span style="color: #808080">// You can no longer pre-fill the user message<br> </span><span style="color: #C00000">'message'</span><span style="color: #004000">=></span><span style="color: #C00000">''</span><span style="color: #004000">,<br> </span><span style="color: #C00000">'link'</span><span style="color: #004000">=></span><span style="color: #C00000">'http://www.phpclasses.org/package/7700-PHP-Authorize-and-access-APIs-using-OAuth.html'</span><span style="color: #004000">,<br> </span><span style="color: #808080">// The name of the post can be retrieved from the page title<br> //'name' => 'This is the title',<br> // the description of the post can be retrieved from the page meta description<br> </span><span style="color: #C00000">'description'</span><span style="color: #004000">=></span><span style="color: #C00000">'This post was submitted using this PHP OAuth API client class.'</span><span style="color: #004000">,<br> </span><span style="color: #C00000">'picture' </span><span style="color: #004000">=> </span><span style="color: #C00000">'http://files.phpclasses.org/files/blog/package/7700/file/PHP%2BOAuth.png'<br> </span><span style="color: #004000">);<br> </span><span style="color: #0000BB">$success </span><span style="color: #004000">= </span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">CallAPI</span><span style="color: #004000">(<br> </span><span style="color: #C00000">'https://graph.facebook.com/v2.3/me/feed'</span><span style="color: #004000">, <br> </span><span style="color: #C00000">'POST'</span><span style="color: #004000">, </span><span style="color: #0000BB">$values</span><span style="color: #004000">, array(</span><span style="color: #C00000">'FailOnAccessError'</span><span style="color: #004000">=></span><span style="color: #0000BB">true</span><span style="color: #004000">), </span><span style="color: #0000BB">$post</span><span style="color: #004000">);<br> }<br> </span><span style="color: #808080">/*<br> if($success)<br> {<br> // Post photos in your time line<br> <br> $success = $client->CallAPI(<br> "https://graph.facebook.com/me/photos",<br> 'POST', array(<br> 'message'=>'This is a test to post photos in Facebook time line using this the PHP OAuth API class: http://www.phpclasses.org/oauth-api',<br> 'source'=>'picture.jpg'<br> ),<br> array(<br> 'FailOnAccessError'=>true,<br> 'Files'=>array(<br> 'source'=>array(<br> )<br> )<br> ), $upload);<br> }<br> */<br> </span><span style="color: #004000">}<br> }<br> </span><span style="color: #0000BB">$success </span><span style="color: #004000">= </span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">Finalize</span><span style="color: #004000">(</span><span style="color: #0000BB">$success</span><span style="color: #004000">);<br> }<br> if(</span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">exit</span><span style="color: #004000">)<br> exit;<br> if(</span><span style="color: #0000BB">$success</span><span style="color: #004000">)<br> {<br> </span><span style="color: #0000BB">?><br> </span><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br> <html><br> <head><br> <title>Facebook OAuth client results</title><br> </head><br> <body><br> <span style="color: #0000BB"><?php<br> </span><span style="color: #004000">echo </span><span style="color: #C00000">'<h1>'</span><span style="color: #004000">, </span><span style="color: #0000BB">HtmlSpecialChars</span><span style="color: #004000">(</span><span style="color: #0000BB">$user</span><span style="color: #004000">-></span><span style="color: #0000BB">name</span><span style="color: #004000">), <br> </span><span style="color: #C00000">' you have logged in successfully with Facebook!</h1>'</span><span style="color: #004000">;<br> echo </span><span style="color: #C00000">'<pre>'</span><span style="color: #004000">, </span><span style="color: #0000BB">HtmlSpecialChars</span><span style="color: #004000">(</span><span style="color: #0000BB">print_r</span><span style="color: #004000">(</span><span style="color: #0000BB">$user</span><span style="color: #004000">, </span><span style="color: #0000BB">1</span><span style="color: #004000">)), </span><span style="color: #C00000">'</pre>'</span><span style="color: #004000">;<br> echo </span><span style="color: #C00000">'<pre>'</span><span style="color: #004000">, </span><span style="color: #0000BB">HtmlSpecialChars</span><span style="color: #004000">(</span><span style="color: #0000BB">print_r</span><span style="color: #004000">(</span><span style="color: #0000BB">$post</span><span style="color: #004000">, </span><span style="color: #0000BB">1</span><span style="color: #004000">)), </span><span style="color: #C00000">'</pre>'</span><span style="color: #004000">;<br> </span><span style="color: #0000BB">?><br> </span></body><br> </html><br> <span style="color: #0000BB"><?php<br> </span><span style="color: #004000">}<br> else<br> {<br> </span><span style="color: #0000BB">?><br> </span><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br> <html><br> <head><br> <title>OAuth client error</title><br> </head><br> <body><br> <h1>OAuth client error</h1><br> <pre>Error: <span style="color: #0000BB"><?php </span><span style="color: #004000">echo </span><span style="color: #0000BB">HtmlSpecialChars</span><span style="color: #004000">(</span><span style="color: #0000BB">$client</span><span style="color: #004000">-></span><span style="color: #0000BB">error</span><span style="color: #004000">); </span><span style="color: #0000BB">?></span></pre><br> </body><br> </html><br> <span style="color: #0000BB"><?php<br> </span><span style="color: #004000">}<br> <br> </span><span style="color: #0000BB">?></span> </span> </code><br> </TD> </TR> </TABLE> </div></div></div> </div><div><br></div><!--/htdig_noindex--> <div><!--htdig_noindex--><h2>Details</h2><!--/htdig_noindex--></div><div class="cd"><h2>PHP OAuth Library to Access Any OAuth API</h2> <p></p> <p>The OAuth protocol is not hard to understand but it requires learning about many details and the many differences of operation with different OAuth servers.</p> <h2>OAuth PHP: Solutions</h2> <p></p> <p>PHP has an extension for using OAuth but it practically requires that you learn all the specification documents for all aspects of the OAuth protocol.</p> <p>Therefore it is better to use a client class like this encapsulate all steps so you do not have to learn so much about the OAuth protocol in all its versions.</p> <h2>PHP OAuth1 Client</h2> <p></p> <p>This PHP class can work with OAuth 1.0 and 1.0a. Despite the class supports servers that work with OAuth 1.0, it is not a secure solution. So most servers that you see and support OAuth 1.0, it is actually OAuth 1.0a which is secure.</p> <h2>PHP OAuth2 Example</h2> <p></p> <p>OAuth 2.0 is not a better version of OAuth 1.0a as if it was an upgrade. You may still see many servers that work securely using OAuth 1.0a.</p> <p>Nowadays most servers use OAuth 2.0 because it is a protocol version that support more extensions.</p> <p>The PHP OAuth class either OAuth 1.0, OAuth 1.0a and OAuth 2.0 . For the developer that uses this class, it does not make much difference because the function calls to use are the same.</p> <p>The main internal difference is that OAuth 1.0a servers return both an access token value and an access token secret.</p> <h2>PHP OAuth Tutorial</h2> <p></p> <p>Several articles have been written to tell not only how to use this package but also to tell about how the different versions of the OAuth protocol work.</p> <p>You can read all the available tutorial articles in the <a href="https://www.phpclasses.org/blog/package/7700/">package blog</a>.</p> <p>The main tutorial article is entitled <a href="https://www.phpclasses.org/blog/package/7700/post/1-Painless-OAuth-with-PHP.html">PHP OAuth Tutorial on How to Use a Pure PHP OAuth Class with an Example Without using the PECL module Implementation</a>.</p> <h2>OAuth Server PHP Configuration: Setting the PHP OAuth Server Variable to Access Any API</h2> <p></p> <p>This PHP OAuth class can work with any server using OAuth1 or OAuth2. Just change the server variable to the name supported API.</p> <p>The class provides built-in support for a few common APIs but any new API can be supported by adding a new entry to the oauth_configuration.json file.</p> <p>This configuration file can be used to presets option values for class variables with the following names. Check the class documentation to learn the meaning of each of these option variables:</p> <pre class="code"><code>oauth_version dialog_url reauthenticate_dialog_url pin_dialog_url access_token_url request_token_url append_state_to_redirect_uri authorization_header url_parameters token_request_method signature_method access_token_authentication access_token_parameter default_access_token_type store_access_token_response refresh_token_authentication grant_type access_token_content_type </code></pre><p></p> <h2>Facebook OAuth2 PHP OAuth Example</h2> <p></p> <p>Here is a simple example of getting the authorization token and making an API call to Facebook Graph API.</p> <p>Check the complete <a href="https://www.phpclasses.org/package/7700-PHP-Authorize-and-access-APIs-using-OAuth.html#view_files/files/42010">Facebook OAuth2 PHP OAuth example here</a>.</p> <pre class="code"><code class="language-php">// Include the necessary class files directly or // vendor/autoload.php if you used composer to install the package. require('http.php'); require('oauth_client.php'); $client = new oauth_client_class; $client->server = 'Facebook'; $client->client_id = 'your application id here'; $client->client_secret = 'your application secret here'; $client->scope = 'email'; if(($success = $client->Initialize())) { if(($success = $client->Process())) { if(strlen($client->access_token)) { $success = $client->CallAPI( 'https://graph.facebook.com/v2.3/me?'. 'fields=id,first_name,last_name,verified,email', 'GET', array(), array('FailOnAccessError'=>true), $user); } $success = $client->Finalize($success); } if($client->exit) exit; } if($success) { echo '<h1>', HtmlSpecialChars($user->name), ' you have logged in successfully with Facebook!</h1>'; } else { echo 'Error: ', HtmlSpecialChars($client->error); } </code></pre><p></p> <h2>Vimeo API PHP OAuth Example</h2> <p></p> <p>Here is a simple example of getting the authorization token and making an API call to Vimeo API.</p> <p>Check the complete <a href="https://www.phpclasses.org/package/7700-PHP-Authorize-and-access-APIs-using-OAuth.html#view_files/files/52344">Vimeo API PHP example here</a>.</p> <pre class="code"><code class="language-php">// Include the necessary class files directly or // vendor/autoload.php if you used composer to install the package. require('http.php'); require('oauth_client.php'); $client = new oauth_client_class; $client->server = 'Vimeo'; $client->client_id = 'your application id here'; $client->client_secret = 'your application secret here'; if(($success = $client->Initialize())) { if(($success = $client->Process())) { if(strlen($client->access_token)) { $success = $client->CallAPI( 'https://api.vimeo.com/me/?format=json', 'GET', array(), array('FailOnAccessError'=>true), $user); } } $success = $client->Finalize($success); } if($client->exit) exit; if($success) { echo '<h1>', HtmlSpecialChars($user->name), ' you have logged in successfully with Vimeo!</h1>'; echo '<pre>', HtmlSpecialChars(print_r($user, 1)), '</pre>'; } else { echo 'Error: ', HtmlSpecialChars($client->error); } </code></pre><p></p> <h2>Google Contacts API PHP Example</h2> <p></p> <p>This example retrieves the Google user contacts using the People API.</p> <p>Check the complete <a href="https://www.phpclasses.org/package/7700-PHP-Authorize-and-access-APIs-using-OAuth.html#view_files/files/130440">Google Contacts API PHP example here</a>.</p> <pre class="code"><code class="language-php">// Include the necessary class files directly or // vendor/autoload.php if you used composer to install the package. require('http.php'); require('oauth_client.php'); $client = new oauth_client_class; $client->server = 'Google'; $client->client_id = 'your application id here'; $client->client_secret = 'your application secret here'; $client->scope = 'https://www.googleapis.com/auth/contacts.readonly'; if(($success = $client->Initialize())) { if(($success = $client->Process())) { if(strlen($client->authorization_error)) { $client->error = $client->authorization_error; $success = false; } elseif(strlen($client->access_token)) { $success = $client->CallAPI( 'https://people.googleapis.com/v1/people/me/connections'. '?fields=connections(emailAddresses%2Cnames)', 'GET', array(), array('FailOnAccessError'=>true), $contacts); } } $success = $client->Finalize($success); } if($client->exit) exit; if($success) { echo '<pre>'; foreach($contacts->connections as $contact) { echo htmlspecialchars($contact->names[0]->displayName), "\n"; } echo '</pre>'; } else { echo 'Error: ', HtmlSpecialChars($client->error); } </code></pre><p></p> <h2>Pinterest API PHP OAuth Example</h2> <p></p> <p>This example retrieves the Pinterest user details using the Pinterst API.</p> <p>Check the complete <a href="https://www.phpclasses.org/package/7700-PHP-Authorize-and-access-APIs-using-OAuth.html#view_files/files/">Pinterest API PHP example here</a>.</p> <pre class="code"><code class="language-php">require('http.php'); require('oauth_client.php'); $client = new oauth_client_class; $client->server = 'Pinterest'; $client->client_id = 'your application id here'; $client->client_secret = 'your application secret here'; $client->scope = 'read_public'; if(($success = $client->Initialize())) { if(($success = $client->Process())) { if(strlen($client->authorization_error)) { $client->error = $client->authorization_error; $success = false; } elseif(strlen($client->access_token)) { $success = $client->CallAPI( 'https://api.pinterest.com/v1/me/', 'GET', array(), array('FailOnAccessError'=>true), $user); } } $success = $client->Finalize($success); } if($client->exit) exit; if($success) { echo '<h1>', HtmlSpecialChars($user->data->first_name), ' you have logged in successfully with Google!</h1>'; echo '<pre>', HtmlSpecialChars(print_r($user, 1)), '</pre>'; } else { echo 'Error: ', HtmlSpecialChars($client->error); } </code></pre></div><br> </div> <!--htdig_noindex--><div id="content_screenshots" class=""><div id="screenshots_list"><table cellspacing="0"><tr><td class="nblu tabcontent" width="1%">Screenshots (2)</td><td class="nbgu"> </td><td class="nbgu" width="98%"> </td></tr><tr><td class="nbpu"></td></tr></table><ul style="white-space: nowrap; padding: 0; width: 100%; overflow: hidden; text-align: center"><li style="display: inline; margin: 4px"><a href="https://www.phpclasses.org/browse/file/362099.html" onclick="return !vs.viewScreenshot('362099');"><img align="top" border="0" width="150" height="93" alt="Google-Sheets-API-Access-PHP-Example.png" title="Output of the Google Sheets API PHP example script" src="https://www.phpclasses.org/browse/view/image/format/screenshot/file/362099/name/Google-Sheets-API-Access-PHP-Example.png" loading="lazy"></a></li><li style="display: inline; margin: 4px"><a href="https://www.phpclasses.org/browse/file/42233.html" onclick="return !vs.viewScreenshot('42233');"><img align="top" border="0" width="150" height="112" alt="php-oauth-api.png" title="Example of information retrieved from user account after logging in Facebook using OAuth" src="https://www.phpclasses.org/browse/view/image/format/screenshot/file/42233/name/php-oauth-api.png" loading="lazy"></a></li></ul></div><div id="screenshot_view"></div></div><!--/htdig_noindex--> <div id="content_view_files" class=""><div id="files"><a name="files"></a><!--htdig_noindex--><table width="100%" style="margin-bottom: 6px; " cellpadding="4" cellspacing="0"> <tr> <td width="1%" class="nbgu"> </td> <td class="nblu"><img src="https://files.phpclasses.org/graphics/phpclasses/directory.png" width="24" height="24" loading="lazy" alt="Files folder image" style="border: 0; vertical-align: middle"> <b> Files (97)</b></td> <td width="98%" class="nbgu"> </td> </tr> </table> <!--/htdig_noindex--> <div id="files_content" style="max-height: 600px; overflow: auto"><table width="100%" cellspacing="0" cellpadding="2"> <!--htdig_noindex--><tr> <th>File</th> <th width="1%" nowrap="nowrap" class="c399">Role</th> <th class="c399">Description</th> </tr><!--/htdig_noindex--> <tr id="file42008" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 42008, "view_files", "files", "view_files");" href="/browse/file/42008.html" title=".">oauth_client.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Class<!--/htdig_noindex--></td> <td valign="top" class="c399">OAuth client class</td> </tr> <tr id="file42013" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/htmlfile.png" width="24" height="24" loading="lazy" alt="HTML file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 42013, "view_files", "files", "view_files");" href="/browse/file/42013.html" title=".">oauth_client_class.html</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Doc.<!--/htdig_noindex--></td> <td valign="top" class="c399">Documentation of the OAuth client class</td> </tr> <tr id="file362100" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 362100, "view_files", "files", "view_files");" href="/browse/file/362100.html" title=".">access_google_sheets_spreadsheet.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Google Sheets API access example script</td> </tr> <tr id="file310250" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 310250, "view_files", "files", "view_files");" href="/browse/file/310250.html" title=".">call_quire.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Call Quire API example script</td> </tr> <tr id="file347162" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 347162, "view_files", "files", "view_files");" href="/browse/file/347162.html" title=".">classmaps.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Aux.<!--/htdig_noindex--></td> <td valign="top" class="c399">Class maps definition</td> </tr> <tr id="file48799" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 48799, "view_files", "files", "view_files");" href="/browse/file/48799.html" title=".">cookie_oauth_client.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Class<!--/htdig_noindex--></td> <td valign="top" class="c399">OAuth client sub-class sor storing and retrieving tokens in encrypted</td> </tr> <tr id="file45363" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 45363, "view_files", "files", "view_files");" href="/browse/file/45363.html" title=".">database_oauth_client.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Class<!--/htdig_noindex--></td> <td valign="top" class="c399">OAuth client sub-class for storing and retrieving tokens in databases</td> </tr> <tr id="file57412" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 57412, "view_files", "files", "view_files");" href="/browse/file/57412.html" title=".">enter_pin.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Aux.<!--/htdig_noindex--></td> <td valign="top" class="c399">Helper script to let the user enter the authorization pin</td> </tr> <tr id="file351560" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 351560, "view_files", "files", "view_files");" href="/browse/file/351560.html" title=".">file_get_google_account.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example script to demonstrate how to get a Google user profile with a OAuth token without the user presence</td> </tr> <tr id="file67274" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 67274, "view_files", "files", "view_files");" href="/browse/file/67274.html" title=".">file_login_with_google.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Google using OAuth and storing the access token in a file</td> </tr> <tr id="file67275" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 67275, "view_files", "files", "view_files");" href="/browse/file/67275.html" title=".">file_oauth_client.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Class<!--/htdig_noindex--></td> <td valign="top" class="c399">OAuth client sub-class for storing and retrieving tokens in files</td> </tr> <tr id="file130440" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 130440, "view_files", "files", "view_files");" href="/browse/file/130440.html" title=".">google_contacts_api_php_example.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example to get the user contacts using the Google People API</td> </tr> <tr id="file360929" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 360929, "view_files", "files", "view_files");" href="/browse/file/360929.html" title=".">google_natural_lan...timent_analysis.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Google natural language artificial intelligence API call example script</td> </tr> <tr id="file44139" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 44139, "view_files", "files", "view_files");" href="/browse/file/44139.html" title=".">LICENSE</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Lic.<!--/htdig_noindex--></td> <td valign="top" class="c399">License of the class</td> </tr> <tr id="file362438" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 362438, "view_files", "files", "view_files");" href="/browse/file/362438.html" title=".">list_files_in_google_drive.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Google Drive API list files example script</td> </tr> <tr id="file59901" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 59901, "view_files", "files", "view_files");" href="/browse/file/59901.html" title=".">login_check_with_facebook.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of checking if the user has authorized Facebook API access without redirecting to the authorization page</td> </tr> <tr id="file51681" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 51681, "view_files", "files", "view_files");" href="/browse/file/51681.html" title=".">login_with_37signals.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with 37Signals using OAuth</td> </tr> <tr id="file51682" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 51682, "view_files", "files", "view_files");" href="/browse/file/51682.html" title=".">login_with_amazon.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Amazon using OAuth</td> </tr> <tr id="file59896" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 59896, "view_files", "files", "view_files");" href="/browse/file/59896.html" title=".">login_with_aol.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with AOL using OAuth</td> </tr> <tr id="file43327" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 43327, "view_files", "files", "view_files");" href="/browse/file/43327.html" title=".">login_with_bitbucket.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Bitbucket using OAuth</td> </tr> <tr id="file52796" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 52796, "view_files", "files", "view_files");" href="/browse/file/52796.html" title=".">login_with_bitly.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in Bitly using OAuth</td> </tr> <tr id="file44569" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 44569, "view_files", "files", "view_files");" href="/browse/file/44569.html" title=".">login_with_box.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Box.net using OAuth</td> </tr> <tr id="file51683" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 51683, "view_files", "files", "view_files");" href="/browse/file/51683.html" title=".">login_with_buffer.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Buffer using OAuth</td> </tr> <tr id="file285675" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 285675, "view_files", "files", "view_files");" href="/browse/file/285675.html" title=".">login_with_charter_spectrum.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Facebook using CharterSpectrum</td> </tr> <tr id="file54662" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 54662, "view_files", "files", "view_files");" href="/browse/file/54662.html" title=".">login_with_copy.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Copy using OAuth</td> </tr> <tr id="file52350" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 52350, "view_files", "files", "view_files");" href="/browse/file/52350.html" title=".">login_with_dailymotion.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Dailymotion using OAuth</td> </tr> <tr id="file51684" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 51684, "view_files", "files", "view_files");" href="/browse/file/51684.html" title=".">login_with_discogs.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Discogs using OAuth</td> </tr> <tr id="file47484" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 47484, "view_files", "files", "view_files");" href="/browse/file/47484.html" title=".">login_with_disqus.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Disqus using OAuth</td> </tr> <tr id="file42629" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 42629, "view_files", "files", "view_files");" href="/browse/file/42629.html" title=".">login_with_dropbox.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Dropbox using OAuth</td> </tr> <tr id="file51685" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 51685, "view_files", "files", "view_files");" href="/browse/file/51685.html" title=".">login_with_etsy.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Etsy using OAuth</td> </tr> <tr id="file44140" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 44140, "view_files", "files", "view_files");" href="/browse/file/44140.html" title=".">login_with_eventful.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Eventful using OAuth</td> </tr> <tr id="file42010" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 42010, "view_files", "files", "view_files");" href="/browse/file/42010.html" title=".">login_with_facebook.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Facebook using OAuth</td> </tr> <tr id="file43569" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 43569, "view_files", "files", "view_files");" href="/browse/file/43569.html" title=".">login_with_fitbit.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Fitbit using OAuth</td> </tr> <tr id="file63651" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 63651, "view_files", "files", "view_files");" href="/browse/file/63651.html" title=".">login_with_fitbit2.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Fitbit using OAuth 2.0</td> </tr> <tr id="file357577" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 357577, "view_files", "files", "view_files");" href="/browse/file/357577.html" title=".">login_with_fitnesssyncer.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example logging in with FitnessSyncer using OAuth</td> </tr> <tr id="file42231" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 42231, "view_files", "files", "view_files");" href="/browse/file/42231.html" title=".">login_with_flickr.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Flickr using OAuth</td> </tr> <tr id="file48800" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 48800, "view_files", "files", "view_files");" href="/browse/file/48800.html" title=".">login_with_foursquare.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Foursquare using OAuth</td> </tr> <tr id="file74398" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 74398, "view_files", "files", "view_files");" href="/browse/file/74398.html" title=".">login_with_garmin.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Garmin using OAuth</td> </tr> <tr id="file51686" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 51686, "view_files", "files", "view_files");" href="/browse/file/51686.html" title=".">login_with_github.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with github using OAuth</td> </tr> <tr id="file42011" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 42011, "view_files", "files", "view_files");" href="/browse/file/42011.html" title=".">login_with_google.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Google using OAuth</td> </tr> <tr id="file130449" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 130449, "view_files", "files", "view_files");" href="/browse/file/130449.html" title=".">login_with_ihealth.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with iHealth using OAuth</td> </tr> <tr id="file57413" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 57413, "view_files", "files", "view_files");" href="/browse/file/57413.html" title=".">login_with_imgur.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with imgur using OAuth</td> </tr> <tr id="file70831" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 70831, "view_files", "files", "view_files");" href="/browse/file/70831.html" title=".">login_with_infusionsoft.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Infusionsoft using OAuth</td> </tr> <tr id="file43570" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 43570, "view_files", "files", "view_files");" href="/browse/file/43570.html" title=".">login_with_instagram.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Instagram using OAuth</td> </tr> <tr id="file56227" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 56227, "view_files", "files", "view_files");" href="/browse/file/56227.html" title=".">login_with_intuit.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of loggin in with Intuit (Quickbooks) using OAuth</td> </tr> <tr id="file56244" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 56244, "view_files", "files", "view_files");" href="/browse/file/56244.html" title=".">login_with_jawbone.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in Jawbone using OAuth</td> </tr> <tr id="file42888" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 42888, "view_files", "files", "view_files");" href="/browse/file/42888.html" title=".">login_with_linkedin.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example logging in with LinkedIn using OAuth</td> </tr> <tr id="file58020" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 58020, "view_files", "files", "view_files");" href="/browse/file/58020.html" title=".">login_with_linkedin2.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example logging in with LinkedIn using OAuth 2.0</td> </tr> <tr id="file95215" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 95215, "view_files", "files", "view_files");" href="/browse/file/95215.html" title=".">login_with_livecoding.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Livecoding.tv</td> </tr> <tr id="file54663" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 54663, "view_files", "files", "view_files");" href="/browse/file/54663.html" title=".">login_with_mail.ru.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with mail.ru using OAuth</td> </tr> <tr id="file58021" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 58021, "view_files", "files", "view_files");" href="/browse/file/58021.html" title=".">login_with_mailchimp.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example logging in with MailChimp</td> </tr> <tr id="file52797" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 52797, "view_files", "files", "view_files");" href="/browse/file/52797.html" title=".">login_with_mavenlink.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in Mavenlink using OAuth</td> </tr> <tr id="file58154" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 58154, "view_files", "files", "view_files");" href="/browse/file/58154.html" title=".">login_with_meetup.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Meetup using OAuth</td> </tr> <tr id="file42421" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 42421, "view_files", "files", "view_files");" href="/browse/file/42421.html" title=".">login_with_microsoft.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Microsoft Hotmail or Windows Live account</td> </tr> <tr id="file127180" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 127180, "view_files", "files", "view_files");" href="/browse/file/127180.html" title=".">login_with_microsoft_openid_connect.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Microsoft OpenID Connect</td> </tr> <tr id="file59924" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 59924, "view_files", "files", "view_files");" href="/browse/file/59924.html" title=".">login_with_misfit.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Misfit using OAuth</td> </tr> <tr id="file52798" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 52798, "view_files", "files", "view_files");" href="/browse/file/52798.html" title=".">login_with_odesk.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in oDesk using OAuth</td> </tr> <tr id="file156061" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 156061, "view_files", "files", "view_files");" href="/browse/file/156061.html" title=".">login_with_odnoklassniki.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Odnoklassniki using OAuth</td> </tr> <tr id="file57307" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 57307, "view_files", "files", "view_files");" href="/browse/file/57307.html" title=".">login_with_paypal.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Paypal using OAuth</td> </tr> <tr id="file130490" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 130490, "view_files", "files", "view_files");" href="/browse/file/130490.html" title=".">login_with_pinterest.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Pinterest using OAuth</td> </tr> <tr id="file314727" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 314727, "view_files", "files", "view_files");" href="/browse/file/314727.html" title=".">login_with_pipedrive.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Pipedrive using OAuth</td> </tr> <tr id="file249251" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 249251, "view_files", "files", "view_files");" href="/browse/file/249251.html" title=".">login_with_polar.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Polar using OAuth</td> </tr> <tr id="file310251" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 310251, "view_files", "files", "view_files");" href="/browse/file/310251.html" title=".">login_with_quire.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Login with Quire example script</td> </tr> <tr id="file51687" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 51687, "view_files", "files", "view_files");" href="/browse/file/51687.html" title=".">login_with_rdio.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Rdio using OAuth</td> </tr> <tr id="file50498" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 50498, "view_files", "files", "view_files");" href="/browse/file/50498.html" title=".">login_with_reddit.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Reddit using OAuth</td> </tr> <tr id="file44915" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 44915, "view_files", "files", "view_files");" href="/browse/file/44915.html" title=".">login_with_rightsignature.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with RightSignature using OAuth</td> </tr> <tr id="file52799" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 52799, "view_files", "files", "view_files");" href="/browse/file/52799.html" title=".">login_with_runkeeper.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in RunKeeper using OAuth</td> </tr> <tr id="file47181" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 47181, "view_files", "files", "view_files");" href="/browse/file/47181.html" title=".">login_with_salesforce.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Salesforce using OAuth</td> </tr> <tr id="file43571" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 43571, "view_files", "files", "view_files");" href="/browse/file/43571.html" title=".">login_with_scoopit.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Scoop.it using OAuth</td> </tr> <tr id="file44141" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 44141, "view_files", "files", "view_files");" href="/browse/file/44141.html" title=".">login_with_stocktwits.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with StockTwits using OAuth</td> </tr> <tr id="file47485" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 47485, "view_files", "files", "view_files");" href="/browse/file/47485.html" title=".">login_with_surveymonkey.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with SurveyMonkey using OAuth</td> </tr> <tr id="file57308" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 57308, "view_files", "files", "view_files");" href="/browse/file/57308.html" title=".">login_with_teamviewer.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with TeamViewer using OAuth</td> </tr> <tr id="file42232" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 42232, "view_files", "files", "view_files");" href="/browse/file/42232.html" title=".">login_with_tumblr.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Tumblr using OAuth</td> </tr> <tr id="file42012" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 42012, "view_files", "files", "view_files");" href="/browse/file/42012.html" title=".">login_with_twitter.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Twitter using OAuth</td> </tr> <tr id="file55155" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 55155, "view_files", "files", "view_files");" href="/browse/file/55155.html" title=".">login_with_twitter2.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of how to implement application-only access to Twitter API using OAuth 2 client_credentials grant_type</td> </tr> <tr id="file91472" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 91472, "view_files", "files", "view_files");" href="/browse/file/91472.html" title=".">login_with_uber.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Uber using OAuth</td> </tr> <tr id="file52344" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 52344, "view_files", "files", "view_files");" href="/browse/file/52344.html" title=".">login_with_vimeo.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Vimeo using OAuth</td> </tr> <tr id="file50782" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 50782, "view_files", "files", "view_files");" href="/browse/file/50782.html" title=".">login_with_vk.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with VK using OAuth</td> </tr> <tr id="file50781" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 50781, "view_files", "files", "view_files");" href="/browse/file/50781.html" title=".">login_with_withings.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Withings using OAuth</td> </tr> <tr id="file52351" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 52351, "view_files", "files", "view_files");" href="/browse/file/52351.html" title=".">login_with_wordpress.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Wordpress using OAuth</td> </tr> <tr id="file51688" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 51688, "view_files", "files", "view_files");" href="/browse/file/51688.html" title=".">login_with_xero.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Xero using OAuth</td> </tr> <tr id="file44916" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 44916, "view_files", "files", "view_files");" href="/browse/file/44916.html" title=".">login_with_xing.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with XING using OAuth</td> </tr> <tr id="file42272" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 42272, "view_files", "files", "view_files");" href="/browse/file/42272.html" title=".">login_with_yahoo.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Yahoo using OAuth</td> </tr> <tr id="file125925" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 125925, "view_files", "files", "view_files");" href="/browse/file/125925.html" title=".">login_with_yammer.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Yammer using OAuth</td> </tr> <tr id="file54664" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 54664, "view_files", "files", "view_files");" href="/browse/file/54664.html" title=".">login_with_yandex.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Yandex using OAuth</td> </tr> <tr id="file130575" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 130575, "view_files", "files", "view_files");" href="/browse/file/130575.html" title=".">logout_from_google.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging out from Google using OAuth</td> </tr> <tr id="file45359" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 45359, "view_files", "files", "view_files");" href="/browse/file/45359.html" title=".">mysqli_login_with_google.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Google using OAuth and storing the access token in a MySQL database</td> </tr> <tr id="file47082" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 47082, "view_files", "files", "view_files");" href="/browse/file/47082.html" title=".">mysqli_login_with_twitter.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of logging in with Twitter using OAuth and storing the access token in a MySQL database</td> </tr> <tr id="file45360" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 45360, "view_files", "files", "view_files");" href="/browse/file/45360.html" title=".">mysqli_oauth_client.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Class<!--/htdig_noindex--></td> <td valign="top" class="c399">OAuth client sub-class for storing and retrieving tokens in a MySQL database using the mysqli extension</td> </tr> <tr id="file45361" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 45361, "view_files", "files", "view_files");" href="/browse/file/45361.html" title=".">mysqli_offline_access_to_google.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Class<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of accessing the Google API offline using a OAuth token stored in a MySQL database</td> </tr> <tr id="file47182" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 47182, "view_files", "files", "view_files");" href="/browse/file/47182.html" title=".">mysqli_offline_access_to_twitter.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example accessing the Twitter API offline using a OAuth token stored in a MySQL database</td> </tr> <tr id="file45362" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 45362, "view_files", "files", "view_files");" href="/browse/file/45362.html" title=".">oauth.sql</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Data<!--/htdig_noindex--></td> <td valign="top" class="c399">MySQL queries to install the oauth_session table</td> </tr> <tr id="file51689" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 51689, "view_files", "files", "view_files");" href="/browse/file/51689.html" title=".">oauth_configuration.json</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Data<!--/htdig_noindex--></td> <td valign="top" class="c399">External configuration of OAuth</td> </tr> <tr id="file125668" class="odd" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'odd')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 125668, "view_files", "files", "view_files");" href="/browse/file/125668.html" title=".">README.md</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Doc.<!--/htdig_noindex--></td> <td valign="top" class="c399">Basic instructions about this PHP OAuth API client package</td> </tr> <tr id="file42009" class="even" onmouseover="sec(this,'highlight')" onmouseout="sec(this,'even')"><td width="1%" nowrap="nowrap" valign="top"><tt><!--htdig_noindex--><img src="https://files.phpclasses.org/graphics/phpclasses/browse.png" width="24" height="24" loading="lazy" alt="Accessible without login" style="border: 0; vertical-align: middle"> <img src="https://files.phpclasses.org/graphics/phpclasses/textfile.png" width="24" height="24" loading="lazy" alt="Plain text file" style="border: 0; vertical-align: middle"> <a onclick="return nav.loadFile(vc, nb, 42009, "view_files", "files", "view_files");" href="/browse/file/42009.html" title=".">test_oauth_client.php</a><!--/htdig_noindex--></tt></td> <td width="1%" nowrap="nowrap" valign="top" class="c399"><!--htdig_noindex-->Example<!--/htdig_noindex--></td> <td valign="top" class="c399">Example of using the OAuth client</td> </tr> </table> <br> </div> </div> <div id="file_data"></div> </div> <!--htdig_noindex--><div id="content_install" class=""><table align="center"><tr><td style="text-align: center; max-width: 24em">The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this <a href="https://www.phpclasses.org/blog/post/221-Speedup-Your-Web-Deployments-Using-Composer-to-Install-PHP-Classes-Packages.html">instructions page</a>.<br></td></tr><tr><td style="text-align: center"><a href="/package_repositories.html?package=7700" onclick="return !nav.loadInstall(7700);"><span id="loading_install"><img src="https://files.phpclasses.org/graphics/phpclasses/composer-medium.png" width="36" height="36" loading="lazy" alt="Install with Composer" style="border: 0; vertical-align: middle"></span></a> <a href="/package_repositories.html?package=7700" onclick="return !nav.loadInstall(7700);" class="edit button">Install with Composer</a></td></tr></table><div id="install" class="framed light" style="display: none; padding: 1px"><p style="text-align: center"><a onclick="nav.closeInstall(); return false"><span class="edit button">Close</span></a></p><div id="install_content"></div></div></div><!--/htdig_noindex--> <!--htdig_noindex--><div id="content_download" class=""><table align="center"><tr><td><a href="/browse/package/7700/download/zip.html"><img src="https://files.phpclasses.org/graphics/phpclasses/down-medium.png" width="36" height="36" loading="lazy" alt="Download" style="border: 0; vertical-align: middle"></a></td><td><a href="/browse/package/7700/download/zip.html" class="edit button">oauth-api-2024-11-09.zip</a> 211KB</td></tr><tr><td><a href="/browse/package/7700/download/targz.html"><img src="https://files.phpclasses.org/graphics/phpclasses/down-medium.png" width="36" height="36" loading="lazy" alt="Download" style="border: 0; vertical-align: middle"></a></td><td><a href="/browse/package/7700/download/targz.html">oauth-api-2024-11-09.tar.gz</a> 140KB</td></tr><tr><td><a href="/package_repositories.html?package=7700" onclick="nb.switchTab('install') ; return !nav.loadInstall(7700);"><span id="loading_download"><img src="https://files.phpclasses.org/graphics/phpclasses/composer-medium.png" width="36" height="36" loading="lazy" alt="Install with Composer" style="border: 0; vertical-align: middle"></span></a></td><td><a href="/package_repositories.html?package=7700" onclick="nb.switchTab('install') ; return !nav.loadInstall(7700);" class="edit button">Install with Composer</a></td></tr></table><table cellspacing="0"><tr><td class="nblu tabcontent" width="1%" id="needed_packages_label">Needed packages</td><td class="nbgu"> </td><td class="nbgu" width="98%"> </td></tr><tr><td class="nbpu"></td></tr></table><TABLE WIDTH="100%" cellspacing="0" cellpadding="2"> <TR><TH WIDTH="1%">Class</TH> <th style="width: 1%">Download</th><th style="text-align: left">Why it is needed</th> <TH WIDTH="1%" class="package-cell-cut-width-500">Dependency</TH> </TR> <TR class="even"> <TD WIDTH="1%"><a href="/package/3-PHP-HTTP-client-to-access-Web-site-pages.html">PHP HTTP protocol client</a></TD> <TD WIDTH="1%" align="center" nowrap="nowrap"><b><img src="https://files.phpclasses.org/graphics/phpclasses/down.png" width="24" height="24" loading="lazy" alt="Download" style="border: 0; vertical-align: middle"> <a class="safe-padding" href="/browse/package/3/download/zip.html">.zip</a> <a class="safe-padding" href="/browse/package/3/download/targz.html">.tar.gz</a></b></TD> <TD>Send HTTP request to OAuth servers</TD> <TD WIDTH="1%" align="center" class="package-cell-cut-width-500">Required</TD> </TR> </TABLE> </div><!--/htdig_noindex--> <div id="content_reputation" class=""><!--htdig_noindex--><table cellspacing="0"><tr><td class="cg" style="width: 49%"> </td><td class="ct tabcontent" style="width: 1%" title="Files imported from version control repositories">Version Control</td><td class="cg"> </td><td class="ct tabcontent" style="width: 1%" title="Other packages that use this package">Reuses</td><td class="cg"> </td><td class="ct tabcontent" width="1%">Unique User Downloads</td><td class="cg"> </td><td class="ct tabcontent package-cell-cut-width-640" width="1%" id="download_rankings_label">Download Rankings</td><td class="cg package-cell-cut-width-640"> </td><td class="cg" style="width: 49%"> </td></tr><tr><td class="cg" style="width: 49%"> </td><td class="cd" nowrap="nowrap" style="text-align: center"><span class="ranking" title="Files imported from version control repositories: 94 out of 97">96%</a></span></td><td rowspan="2"></td><td class="cd" nowrap="nowrap" style="text-align: center" rowspan="2"><a href="" onclick="nav.switchReuses(); return false;"><span class="ranking" title="Other packages that use this package">3</a></span></td><td rowspan="2"></td><td class="cd"><table><tr><td nowrap="nowrap" style="text-align: right; width: 1%; font-weight: bold">Total:</td><td style="padding: 8px"><span class="ranking">26,740</span></td><tr><td style="white-space: nowrap; text-align: right; font-weight: bold">This week:</td><td style="text-align: center; padding: 8px"><span class="ranking">2</span></td></tr></table></td><td class="cg"></td><td class="cd package-cell-cut-width-640"><table><tr><td style="white-space: nowrap; text-align: right; width: 1%; font-weight: bold">All time:</td><td style="padding: 8px; text-align: center"><span class="ranking">19</span></td><td class="cg"></td><tr><td class="package-cell-cut-width-640" style="white-space: nowrap; font-weight: bold; text-align: right">This week:</td><td class="package-cell-cut-width-640" style="padding: 8px; text-align: center"><span class="ranking">30</span></td><td class="package-cell-cut-width-640"><img src="https://files.phpclasses.org/graphics/phpclasses/down.png" width="24" height="24" loading="lazy" alt="Down" style="border: 0; vertical-align: middle"></td><td class="package-cell-cut-width-640"></td></tr></table></td><td class="cg"></td></tr></table><!--/htdig_noindex--> <table cellspacing="0" style="width: 100%; margin-top: 4px"><tr><td class="ct tabcontent" style="width: 1%" id="user_ratings_label"><!--htdig_noindex-->User Ratings<!--/htdig_noindex--></td><td class="cg"> </td><td class="ct tabcontent package-cell-cut-width-800" colspan="3"><!--htdig_noindex-->User Comments (32)<!--/htdig_noindex--></td></tr><tr><td class="cd" style="vertical-align: top" id="user_ratings"> <!--htdig_noindex--><table cellspacing="0"><tr><td> </td><th style="white-space: nowrap" colspan="2">All time</th></tr><tr class="odd"><th style="text-align: right">Utility:</th><td style="text-align: center; padding: 8px"><span class="ranking" id="user_ratings_utility">93%</span></td><td title="Good" style="white-space: nowrap"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></td></tr><tr class="even"><th style="text-align: right">Consistency:</th><td style="text-align: center; padding: 8px"><span class="ranking" id="user_ratings_consistency">89%</span></td><td title="Good" style="white-space: nowrap"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></td></tr><tr class="odd"><th style="text-align: right">Documentation:</th><td style="text-align: center; padding: 8px"><span class="ranking" id="user_ratings_documentation">83%</span></td><td title="Good" style="white-space: nowrap"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></td></tr><tr class="even"><th style="text-align: right">Examples:</th><td style="text-align: center; padding: 8px"><span class="ranking" id="user_ratings_examples">85%</span></td><td title="Good" style="white-space: nowrap"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></td></tr><tr class="odd"><th style="text-align: right">Tests:</th><td style="text-align: center"><span class="ranking" id="user_ratings_tests">-</span></td><td></td></tr><tr class="even"><th style="text-align: right">Videos:</th><td style="text-align: center"><span class="ranking" id="user_ratings_videos">-</span></td><td></td></tr><tr class="odd"><th style="text-align: right">Overall:</th><td style="text-align: center; padding: 8px"><span class="ranking" id="user_ratings_overall">72%</span></td><td title="Sufficient" style="white-space: nowrap"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></td></tr><tr><th style="text-align: right">Rank:</th><td style="text-align: center; padding: 8px" colspan="2"><span class="ranking">168</span></td></tr></table><!--/htdig_noindex--> </td><td> </td><td class="cd package-cell-cut-width-800" colspan="3" style="vertical-align: top;"><div style="max-height: 30em; overflow: auto"> <table style="width: 100%" cellspacing="0"><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/441/">Saludos Manuel, felicidades, una gran Clase.</a><br>4 years ago (victor victor)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/413/">jkhbjkbk</a><br>6 years ago (Abhay Singh)</td><td style="width: 1%; text-align: center"><span class="ranking">0%</span></td><td style="white-space: nowrap"><span title="Bad"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/402/">Excellent library!</a><br>7 years ago (Michael V.)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/397/"> A document better explaining where to integrate existing dat...</a><br>7 years ago (Peter)</td><td style="width: 1%; text-align: center"><span class="ranking">70%</span></td><td style="white-space: nowrap"><span title="Sufficient"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/397/"> A document better explaining where to integrate existing dat...</a><br>7 years ago (Peter)</td><td style="width: 1%; text-align: center"><span class="ranking">70%</span></td><td style="white-space: nowrap"><span title="Sufficient"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/382/">nice</a><br>7 years ago (muabshir)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/380/">Many thanks for this class and the subsequent support which h...</a><br>7 years ago (Murray Russell)</td><td style="width: 1%; text-align: center"><span class="ranking">75%</span></td><td style="white-space: nowrap"><span title="Sufficient"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/369/">I love this package.</a><br>7 years ago (Johnny Mast)</td><td style="width: 1%; text-align: center"><span class="ranking">77%</span></td><td style="white-space: nowrap"><span title="Sufficient"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/369/">I love this package.</a><br>7 years ago (Johnny Mast)</td><td style="width: 1%; text-align: center"><span class="ranking">77%</span></td><td style="white-space: nowrap"><span title="Sufficient"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/356/">I was pleasantly surprised to see this library work flawlessl...</a><br>8 years ago (Husain Al-Bustan)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/348/">Very nice application library, though I've yet to figure out ...</a><br>8 years ago (Greg Burns)</td><td style="width: 1%; text-align: center"><span class="ranking">75%</span></td><td style="white-space: nowrap"><span title="Sufficient"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/345/">Manuel was so helpful in terms of code and communication.</a><br>8 years ago (Tyler)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/339/">Finally, a Microsoft Live authentication working :) Hybridaut...</a><br>8 years ago (chris lachance)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/307/">I wish there was better documentation such as using Data for ...</a><br>9 years ago (Melissa Williams)</td><td style="width: 1%; text-align: center"><span class="ranking">65%</span></td><td style="white-space: nowrap"><span title="Sufficient"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/304/">Finally an abstract class to work with oauth (1 and 2).</a><br>9 years ago (rodrigo butta)</td><td style="width: 1%; text-align: center"><span class="ranking">75%</span></td><td style="white-space: nowrap"><span title="Sufficient"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/299/">Works perfect.</a><br>9 years ago (Kasper)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/295/">where is http.</a><br>9 years ago (Konrad Tomaszewski)</td><td style="width: 1%; text-align: center"><span class="ranking">40%</span></td><td style="white-space: nowrap"><span title="Not sure"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/278/">I had just stumbled upon this site, so had no particular trus...</a><br>9 years ago (sootsnoot)</td><td style="width: 1%; text-align: center"><span class="ranking">77%</span></td><td style="white-space: nowrap"><span title="Sufficient"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/264/">It has worked like a charm, thank you very much work make my ...</a><br>9 years ago (Antonio)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/250/">Really great job.</a><br>9 years ago (Thennarasu)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/207/">Excellent Service</a><br>10 years ago (Dilip)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/200/">Complete package</a><br>10 years ago (jack chan)</td><td style="width: 1%; text-align: center"><span class="ranking">75%</span></td><td style="white-space: nowrap"><span title="Sufficient"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/198/">Super</a><br>10 years ago (Vallee Jean-Francois)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/174/">sccv</a><br>10 years ago (kashif)</td><td style="width: 1%; text-align: center"><span class="ranking">40%</span></td><td style="white-space: nowrap"><span title="Not sure"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/101/">Really good examples</a><br>11 years ago (Jan Jansen)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/90/">Thanks.</a><br>11 years ago (John Erck)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/37/">Excellent package, thank you very much.</a><br>11 years ago (Jake Weisz)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/80/">Made changes to enable me to run the class on my shared host.</a><br>11 years ago (John Rambelle)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/66/">Can you estimate how many updates / correction will follow? T...</a><br>11 years ago (Dietmar B點kart)</td><td style="width: 1%; text-align: center"><span class="ranking">57%</span></td><td style="white-space: nowrap"><span title="Not sure"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/10/">Just perfect!</a><br>12 years ago (Marek Sieroci?ski)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="even" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/6/">I find this package very usefull for some projects I am worki...</a><br>12 years ago (Frederik Yssing)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr><tr class="odd" style="padding: 4px"><td><a style="font-weight: bold" href="/discuss/package/7700/thread/7/">I am very enthousiastic about this package.</a><br>12 years ago (Arno Buizer)</td><td style="width: 1%; text-align: center"><span class="ranking">80%</span></td><td style="white-space: nowrap"><span title="Good"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"><img src="https://files.phpclasses.org/graphics/phpclasses/star.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"></span></td></tr></table> </div></td><td> </td></tr></table> </div> <div id="content_links" class="" style="max-height: 600px; overflow: auto"><!--htdig_noindex--><a name="applications"></a><br><table width="100%" style="margin-bottom: 6px; " cellpadding="4" cellspacing="0"> <tr> <td width="1%" class="nbgu"> </td> <td class="nblu"><b>Applications that use this package</b></td> <td width="98%" class="nbgu"> </td> </tr> </table> <div class="framed dark">No pages of applications that use this class were specified.</div> <p><img src="https://files.phpclasses.org/graphics/phpclasses/add.png" width="24" height="24" loading="lazy" alt="Add link image" style="border: 0; vertical-align: middle"> If you know an application of this package, send a message to the <a class="button edit" target="_blank" href="/contact/package/7700.html">author</a> to add a link here.</p> <!--/htdig_noindex--><!--htdig_noindex--><a name="dependents"></a><br><table width="100%" style="margin-bottom: 6px; " cellpadding="4" cellspacing="0"> <tr> <td width="1%" class="nbgu"> </td> <td class="nblu" id="reuses_label"><b>Other classes that need this package</b></td> <td width="98%" class="nbgu"> </td> </tr> </table> <div id="reuses"><TABLE WIDTH="100%" cellspacing="0" cellpadding="2"> <TR><TH WIDTH="1%">Class</TH> <th style="text-align: left">Why it is needed</th> <TH WIDTH="1%" class="package-cell-cut-width-500">Dependency</TH> </TR> <TR class="even"> <TD WIDTH="1%"><a href="/package/9-PHP-PHP-mailer-to-compose-and-send-MIME-messages.html">MIME E-mail message sending</a></TD> <TD>This package is necessary to obtain the OAuth token that is required by some SMTP servers that support the XOAUTH2 authentication mechanism.</TD> <TD WIDTH="1%" align="center" class="package-cell-cut-width-500">Conditional</TD> </TR> <TR class="odd"> <TD WIDTH="1%"><a href="/package/8109-PHP-Generate-RSS-feeds-from-timelines-and-searches.html">PHP Twitter Feed</a></TD> <TD>Needed to obtain Twitter access tokens and call its API</TD> <TD WIDTH="1%" align="center" class="package-cell-cut-width-500">Required</TD> </TR> <TR class="even"> <TD WIDTH="1%"><a href="/package/8487-PHP-Access-Google-Webmaster-Tools-API-for-given-sites.html">PHP Webmaster Tools API</a></TD> <TD>Authorize the access to the Webmaster Tools API on behalf of a given user</TD> <TD WIDTH="1%" align="center" class="package-cell-cut-width-500">Required</TD> </TR> </TABLE> </div><!--/htdig_noindex--></div> </div><script type="text/javascript" src="https://files.phpclasses.org/animation.js"></script> <script type="text/javascript" src="https://files.phpclasses.org/js/scrollbarToTop.js"></script> <script type="text/javascript" src="https://files.phpclasses.org/js/ajaxLoadContent.js?ts=1414480790"></script> <script type="text/javascript" src="https://files.phpclasses.org/js/packagesNavigation.js?ts=1722573234"></script> <script type="text/javascript"><!-- function sec(e, c) { var n = e.id; if(document.layers) { document.layers[n].className = c; } else { if(document.all) { document.all[n].className = c; } else { if(e.className) { e.className = c } } } } vc = new ViewContent(); vc.debug = 0; vu = new ViewContent(); vu.previous = null; vu.fileData = "usage_file_data"; vu.loadingElement = "loading_usage_file"; vu.fileFormat = "usage"; vu.debug = 0; var initialTab = "information"; var initialPath = null; var initialScreenshot = null; var initialVideo = null; var initialSlides = null; nav = new Navigation(); nav.reputationLabel = "Reputation"; nav.downloadLabel = "Download"; nav.ratingsLabel = "User ratings"; nav.neededPackagesLabel = "Needed packages"; nav.downloadRankingsLabel = "Download Rankings"; nav.linksLabel = "Links"; nav.package = 7700; nav.tabs = ["content_information","content_screenshots","content_view_files","content_install","content_download","content_reputation","content_links"]; nav.informationSections = [ "content_screenshots", "content_view_files", "content_download", "content_reputation", "content_links" ] nav.tabsContainer = "heightcontainer"; nav.fixTabsHeight(); nav.debug = 0; nb = new NavigationBar(initialTab, "", null, null, "heightcontainer"); nb.debug = 0; allTabs = {"information":true,"screenshots":true,"view_files":true,"install":true,"download":true,"reputation":true,"links":true}; var allFiles = {"files":{"42008":0,"42013":1,"362100":2,"310250":3,"347162":4,"48799":5,"45363":6,"57412":7,"351560":8,"67274":9,"67275":10,"130440":11,"360929":12,"44139":13,"362438":14,"59901":15,"51681":16,"51682":17,"59896":18,"43327":19,"52796":20,"44569":21,"51683":22,"285675":23,"54662":24,"52350":25,"51684":26,"47484":27,"42629":28,"51685":29,"44140":30,"42010":31,"43569":32,"63651":33,"357577":34,"42231":35,"48800":36,"74398":37,"51686":38,"42011":39,"130449":40,"57413":41,"70831":42,"43570":43,"56227":44,"56244":45,"42888":46,"58020":47,"95215":48,"54663":49,"58021":50,"52797":51,"58154":52,"42421":53,"127180":54,"59924":55,"52798":56,"156061":57,"57307":58,"130490":59,"314727":60,"249251":61,"310251":62,"51687":63,"50498":64,"44915":65,"52799":66,"47181":67,"43571":68,"44141":69,"47485":70,"57308":71,"42232":72,"42012":73,"55155":74,"91472":75,"52344":76,"50782":77,"50781":78,"52351":79,"51688":80,"44916":81,"42272":82,"125925":83,"54664":84,"130575":85,"45359":86,"47082":87,"45360":88,"45361":89,"47182":90,"45362":91,"51689":92,"125668":93,"42009":94}}; if(document.location.hash.length && document.location.hash[0] === "#") { var path; initialTab = document.location.hash.substring(1); path = nav.getPath(initialTab, allTabs); if(path.parent) { initialTab = path.parent; if(path.child) { switch(initialTab) { case "demos": initialDemo = path.child; break; case "view_files": path = nav.getLastPath(path.child, allFiles); if(typeof path.parent === "string") { initialPath = path.parent; if(path.child) { initialFile = path.child; } } break; case "screenshots": path = nav.getPath(path.child); if(path.child) { switch(path.parent) { case "screenshot": initialScreenshot = path.child; break; case "video": initialVideo = path.child; break; case "slides": initialSlides = path.child; break; } } break; } } else { switch(initialTab) { case "usage": nav.loadFile(vu, nb, 42010, "usage_file", null, "usage"); break; } } nb.setTab(initialTab); } } if(initialPath) { vc.setContent(initialPath); if(initialFile) { nav.loadFile(vc, nb, initialFile, "view_files", null, "view_files"); } } var vs = new ViewScreenshots(); vs.screenshots = {"362099":"<div class=\"framed\" style=\"text-align: center\"><br><a style=\"visibility: hidden\"><span class=\"edit button\">< Previous<\/span><\/a> <a onclick=\"vs.closeScreenshot(); return false\"><span class=\"edit button\">Close<\/span><\/a> <a onclick=\"return !vs.viewScreenshot('42233');\"><span class=\"edit button\">Next ><\/span><\/a><br><br><p style=\"text-align: center; font-weight: bold\">Output of the Google Sheets API PHP example script<\/p><div id=\"screenshot_view_content\"><img align=\"top\" border=\"0\" width=\"512\" height=\"320\" alt=\"Google-Sheets-API-Access-PHP-Example.png\" title=\"Output of the Google Sheets API PHP example script\" src=\"https:\/\/www.phpclasses.org\/browse\/view\/image\/format\/screenshot\/file\/362099\/name\/Google-Sheets-API-Access-PHP-Example.png\" loading=\"lazy\"><\/div><\/div>","42233":"<div class=\"framed\" style=\"text-align: center\"><br><a onclick=\"return !vs.viewScreenshot('362099');\"><span class=\"edit button\">< Previous<\/span><\/a> <a onclick=\"vs.closeScreenshot(); return false\"><span class=\"edit button\">Close<\/span><\/a> <a style=\"visibility: hidden\"><span class=\"edit button\">Next ><\/span><\/a><br><br><p style=\"text-align: center; font-weight: bold\">Example of information retrieved from user account after logging in Facebook using OAuth<\/p><div id=\"screenshot_view_content\"><img align=\"top\" border=\"0\" width=\"640\" height=\"480\" alt=\"php-oauth-api.png\" title=\"Example of information retrieved from user account after logging in Facebook using OAuth\" src=\"https:\/\/www.phpclasses.org\/browse\/view\/image\/format\/screenshot\/file\/42233\/name\/php-oauth-api.png\" loading=\"lazy\"><\/div><\/div>"}; vs.debug = 0; if(initialScreenshot) { vs.displayScreenshot(initialScreenshot); } var vv = new ViewVideos(); vv.videos = []; vv.debug = 0; if(initialVideo) { vv.displayVideo(initialVideo, 7700); } var vsl = new ViewVideos(); vsl.stateContext = "slides"; vsl.videos = []; vsl.debug = 0; if(initialSlides) { vsl.displayVideo(initialSlides, 7700); } nav.loadingIcon = vc.loadingIcon = vv.loadingIcon = vsl.loadingIcon = vu.loadingIcon = '\x3cimg src="https:\x2f\x2ffiles.phpclasses.org\x2fgraphics\x2fphpclasses\x2floading.gif" width="24" height="24" loading="lazy" alt="Loading" style="border: 0; vertical-align: middle"\x3e'; nav.rateIcon = '\x3cimg src="https:\x2f\x2ffiles.phpclasses.org\x2fgraphics\x2fphpclasses\x2fstar.png" width="24" height="24" loading="lazy" alt="Star" style="border: 0; vertical-align: top"\x3e'; nav.installIcon = '\x3cimg src="https:\x2f\x2ffiles.phpclasses.org\x2fgraphics\x2fphpclasses\x2fcomposer-medium.png" width="36" height="36" loading="lazy" alt="Install with Composer" style="border: 0; vertical-align: middle"\x3e'; function submitRating() { return nav.submitRating(); } ab = new NavigationBar("level", "author_", "performance"); ab.debug = 0; var nv = new Navigation(); nv.tabsContainer = "author_container"; nv.tabs = ["author_content_performance", "author_content_level"]; nv.fixTabsHeight(); // --></script> <!-- body_end --><div class="c1025"><script type="text/javascript"><!-- cl.addContent({ content: '\x3cbr\x3e\x3cdiv align="center"\x3e\x3c!-- PHPClasses-Bottom --\x3e\n\n\x3c!-- AdSense Bottom --\x3e\n\x3cscript async data-src="https:\x2f\x2fpagead2.googlesyndication.com\x2fpagead\x2fjs\x2fadsbygoogle.js?client=ca-pub-2951707118576741" data-loading="lazy"\n crossorigin="anonymous"\x3e\x3c\x2fscript\x3e\n\x3c!-- PHP Classes Bottom --\x3e\n\x3cins class="adsbygoogle"\n style="display:inline-block;width:728px;height:90px"\n data-ad-client="ca-pub-2951707118576741"\n data-ad-slot="0161400320"\x3e\x3c\x2fins\x3e\n\x3cscript\x3e\n (adsbygoogle = window.adsbygoogle || []).push({});\n\x3c\x2fscript\x3e\n\x3c!-- End of AdSense Bottom --\x3e\n\n\n\x3c\x2fdiv\x3e', inline: false, height: 90, priority: 1 }); // --></script> </div><script type="text/javascript"><!-- cl.addContent({ content: '\n\x3c!-- Start of Google Analytics 4 --\x3e\n\x3c!-- Google tag (gtag.js) --\x3e\n\x3cscript async src="https:\x2f\x2fwww.googletagmanager.com\x2fgtag\x2fjs?id=G-BN2GRQ7TJL"\x3e\x3c\x2fscript\x3e\n\x3cscript\x3e\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag(\'js\', new Date());\n\n gtag(\'config\', \'G-BN2GRQ7TJL\');\n\x3c\x2fscript\x3e\n\x3c!-- End of Google Analytics 4 --\x3e\n\n', inline: false }); // --></script> <script type="text/javascript"><!-- cl.loadContent(); // --></script> </div> <div class="BodyColumn"></div> </div> </div> </div> <div id="FooterInfo"> <div class="c1025"><div id="endnavigation"><table width="100%" style="margin-top: 6px; " cellpadding="4" cellspacing="0"> <tr> <td width="49.5%" style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/user.png" width="24" height="24" loading="lazy" alt="About us" style="border: 0; vertical-align: middle"> <a href="/about">About us</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/buy.png" width="24" height="24" loading="lazy" alt="Advertise on this site" style="border: 0; vertical-align: middle"> <a href="/sponsor.html" target="_blank">Advertise on this site</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/map.png" width="24" height="24" loading="lazy" alt="Site map" style="border: 0; vertical-align: middle"> <a href="/sitemap/">Site map</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/new.png" width="24" height="24" loading="lazy" alt="Newsletter" style="border: 0; vertical-align: middle"> <a href="/newsletter/">Newsletter</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/statistics.png" width="24" height="24" loading="lazy" alt="Statistics" style="border: 0; vertical-align: middle"> <a href="/browse/statistics/statistics.html">Statistics</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/tip.png" width="24" height="24" loading="lazy" alt="Site tips" style="border: 0; vertical-align: middle"> <a href="/tips.html">Site tips</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/privacy.png" width="24" height="24" loading="lazy" alt="Privacy policy" style="border: 0; vertical-align: middle"> <a href="/faq/#privacy-policy">Privacy policy</a></td> <td style=" white-space: nowrap ; padding: 1px"> </td> <td style=" white-space: nowrap ;"><img src="https://files.phpclasses.org/graphics/phpclasses/mail.png" width="24" height="24" loading="lazy" alt="Contact" style="border: 0; vertical-align: middle"> <a href="/faq/#contact">Contact</a></td> <td width="49.5%" style=" white-space: nowrap ; padding: 1px"> </td> </tr> </table> </div></div> <div id="invertedCompanyLogo"><a href="https://www.icontem.com/" target="_blank" rel="noreferrer nofollow noopener noreferer"><img src="https://files.phpclasses.org/graphics/inverted-icontem.png" width="180" height="60" loading="lazy" alt="Icontem" style="border: 0"></a></div> <div id="Copyright">Copyright (c) <a href="https://www.icontem.com/" rel="noreferrer nofollow noopener noreferer" target="_blank">Icontem</a> 1999-2024</div> <div id="Contact"><address>For more information send a message to <code><a target="_blank" href="/faq/#contact">info at phpclasses dot org</a></code>.</address> <div class="contactBar"><div style="background-color: #25d366; border-radius: 8px; padding: 7px 3px 4px 6px; margin: 4px; border-width: 1px; border-color: #000000; border-style: solid; width: 37px"><a target="_blank" href="https://api.whatsapp.com/send?phone=5514998068719&text=Hello%2C+I+visited+your+site++and+I+need+your+help." title="Contact us using WhatsApp"><?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) based on the original provided with permission by WhatsApp (https://www.facebook.com/brand/resources/whatsapp/whatsapp-brand) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" id="svg2" xml:space="preserve" width="32.950111" height="32.641735" viewBox="0 0 32.950112 32.641736" sodipodi:docname="WhatsApp_Logo_2.svg" inkscape:version="0.92.2 5c3e80d, 2017-08-06"><metadata id="metadata8"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs id="defs6"><clipPath clipPathUnits="userSpaceOnUse" id="clipPath18"><path d="M 0,1066.861 H 1280.244 V 0 H 0 Z" id="path16" inkscape:connector-curvature="0" /></clipPath><clipPath clipPathUnits="userSpaceOnUse" id="clipPath30"><path d="M 0,1066.861 H 1280.244 V 0 H 0 Z" id="path28" inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="993" id="namedview4" showgrid="false" inkscape:zoom="1" inkscape:cx="-265.30262" inkscape:cy="-256.21845" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="g10" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" /><g id="g10" inkscape:groupmode="layer" inkscape:label="WhatsApp_Logo_2" transform="matrix(1.3333333,0,0,-1.3333333,-830.48251,714.48498)"><g id="g12" transform="matrix(0.01930303,0,0,0.02294704,622.8619,511.38245)"><g id="g14" clip-path="url(#clipPath18)"><g id="g20" transform="translate(1260.3838)"><path d="m 0,0 h -1240.524 c -10.968,0 -19.86,8.892 -19.86,19.86 v 1027.142 c 0,10.968 8.892,19.859 19.86,19.859 H 0 c 10.968,0 19.86,-8.891 19.86,-19.859 V 19.86 C 19.86,8.892 10.968,0 0,0" style="fill:#25d366;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path22" inkscape:connector-curvature="0" /></g></g></g><g id="g24" transform="matrix(0.05,0,0,0.05,603.45728,497.44195)"><g id="g26" clip-path="url(#clipPath30)"><g id="g32" transform="translate(736.1802,489.2339)"><path d="m 0,0 c -5.211,2.608 -30.831,15.213 -35.608,16.954 -4.776,1.739 -8.25,2.607 -11.724,-2.608 -3.474,-5.216 -13.461,-16.955 -16.501,-20.433 -3.039,-3.477 -6.079,-3.914 -11.29,-1.304 -5.211,2.608 -22.002,8.11 -41.906,25.865 -15.491,13.818 -25.95,30.882 -28.989,36.099 -3.04,5.217 -0.325,8.037 2.284,10.635 2.345,2.335 5.212,6.087 7.817,9.13 2.606,3.042 3.474,5.217 5.211,8.693 1.737,3.479 0.869,6.521 -0.435,9.129 -1.302,2.608 -11.724,28.259 -16.066,38.694 -4.23,10.16 -8.526,8.784 -11.725,8.945 -3.036,0.151 -6.514,0.183 -9.987,0.183 -3.474,0 -9.12,-1.304 -13.897,-6.52 -4.776,-5.217 -18.238,-17.825 -18.238,-43.473 0,-25.651 18.672,-50.429 21.278,-53.907 2.606,-3.479 36.745,-56.113 89.021,-78.685 12.432,-5.37 22.139,-8.576 29.707,-10.977 12.483,-3.967 23.843,-3.407 32.822,-2.065 10.012,1.495 30.831,12.605 35.174,24.777 C 11.29,-18.693 11.29,-8.26 9.987,-6.087 8.685,-3.913 5.211,-2.609 0,0 m -95.082,-129.825 h -0.07 c -31.105,0.012 -61.613,8.369 -88.227,24.162 l -6.33,3.757 -65.606,-17.21 17.511,63.966 -4.121,6.559 c -17.352,27.598 -26.517,59.496 -26.503,92.25 0.038,95.573 77.8,173.329 173.415,173.329 46.3,-0.016 89.822,-18.07 122.551,-50.836 C 60.265,133.388 78.278,89.836 78.26,43.519 78.221,-52.062 0.46,-129.825 -95.082,-129.825 M 52.446,191.049 c -39.375,39.421 -91.739,61.14 -147.53,61.163 -114.953,0 -208.511,-93.552 -208.557,-208.54 -0.015,-36.758 9.588,-72.635 27.839,-104.264 l -29.587,-108.071 110.558,29.001 c 30.462,-16.615 64.759,-25.373 99.664,-25.384 h 0.085 10e-4 c 114.941,0 208.507,93.561 208.554,208.551 0.021,55.726 -21.652,108.124 -61.027,147.544" style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path34" inkscape:connector-curvature="0" /></g></g></g></g></svg></a></div><div style="background-color: #ffffff; border-radius: 8px; padding: 4px 4px 4px 5px; margin: 4px; border-width: 1px; border-color: #000000; border-style: solid; width: 37px"><a target="_blank" href="https://m.me/114418241923267" title="Contact us using Messenger"><?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) based on the original provided with permission by WhatsApp (https://www.facebook.com/brand/resources/messenger/logo) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="35.84" height="35.84" viewBox="0 0 35.84 35.84" version="1.1" id="svg22" sodipodi:docname="logo.svg" inkscape:version="0.92.2 5c3e80d, 2017-08-06"> <metadata id="metadata26"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> </cc:Work> </rdf:RDF> </metadata> <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="993" id="namedview24" showgrid="false" inkscape:zoom="0.74362183" inkscape:cx="-718.6531" inkscape:cy="-73.162608" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg22" /> <title id="title2">Contact us using Messenger</title> <defs id="defs13"> <radialGradient cx="265.97925" cy="917.72095" fx="265.97925" fy="917.72095" r="871.6759" id="radialGradient-1" gradientUnits="userSpaceOnUse"> <stop stop-color="#0099FF" offset="0%" id="stop4" /> <stop stop-color="#A033FF" offset="60.9753877%" id="stop6" /> <stop stop-color="#FF5280" offset="93.482299%" id="stop8" /> <stop stop-color="#FF7061" offset="100%" id="stop10" /> </radialGradient> </defs> <g id="g20" style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1" transform="scale(0.035)"> <rect id="bounding-box" x="0" y="0" width="1024" height="1024" style="fill:#ffffff;fill-opacity:0" /> <g id="logo"> <path d="m 512,122 c -225.332,0 -400,165.056 -400,388 0,116.6144 47.792,217.3824 125.6224,286.984 6.5336,5.848 10.4776,14.04 10.7456,22.808 l 2.1784,71.152 c 0.696,22.696 24.1392,37.464 44.9072,28.296 l 79.3944,-35.048 c 6.7304,-2.968 14.272,-3.52 21.364,-1.568 C 432.696,892.656 471.5264,898 512,898 737.332,898 912,732.944 912,510 912,287.056 737.332,122 512,122 Z" id="Path" inkscape:connector-curvature="0" style="fill:url(#radialGradient-1)" /> <path d="m 271.8016,623.4688 117.5,-186.416 c 18.6904,-29.656 58.7144,-37.04 86.7584,-16.008 l 93.4536,70.0904 c 8.5744,6.432 20.372,6.3976 28.9104,-0.0824 l 126.2136,-95.788 c 16.8464,-12.784 38.836,7.376 27.5624,25.2664 L 634.7,606.9488 c -18.692,29.6544 -58.716,37.04 -86.7584,16.0064 l -93.456,-70.092 c -8.5736,-6.4304 -20.372,-6.396 -28.9096,0.084 l -126.2144,95.788 c -16.8456,12.7832 -38.836,-7.3768 -27.56,-25.2664 z" id="path17" inkscape:connector-curvature="0" style="fill:#ffffff" /> </g> </g> </svg> </a></div><div style="background-color: #000000; border-radius: 8px; padding: 5px 4px 5px 5px; margin: 4px; border-width: 1px; border-color: #000000; border-style: solid; width: 37px"><a target="_blank" href="mailto:info@phpclasses.org" title="Contact us using email"><img src="https://files.phpclasses.org/graphics/phpclasses/mail-medium.png" width="36" height="36" loading="lazy" alt="Contact us using email" style="border: 0; vertical-align: middle"></a></div></div></div> </div> </div> </div> </div> <div style="display: none"> <!-- Start of Sticky BuySellAds --> <script async data-src="//m.servedby-buysellads.com/monetization.js" data-loading="lazy"></script> <script> window.addEventListener("load", (event) => { (function () { if (typeof _bsa !== "undefined" && _bsa) { _bsa.init("stickybox", "CK7DPK3E", "placement:phpclassesorg"); } })(); }); </script> <!-- End of Sticky BuySellAds --> </div> </body> </html>