<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3454509325313497768</id><updated>2026-03-28T07:27:10.332+08:00</updated><category term="howto"/><category term="php"/><category term="perl"/><category term="css"/><category term="web"/><category term="jquery"/><category term="oauth"/><category term="token"/><category term="curl"/><category term="facebook"/><category term="post"/><category term="twitter"/><category term="url"/><category term="how"/><category term="style"/><category term="api"/><category term="backend"/><category term="file"/><category term="html"/><category term="social"/><category term="browser"/><category term="form"/><category term="function"/><category term="integration"/><category term="site"/><category term="useragent"/><category term="client"/><category term="cookies"/><category term="error"/><category term="http"/><category term="login"/><category term="wordpress"/><category term="xml"/><category term="access"/><category term="application"/><category term="data"/><category term="element"/><category term="files"/><category term="get"/><category term="google"/><category term="how to"/><category term="htaccess"/><category term="ie"/><category term="input"/><category term="javascript"/><category term="js"/><category term="latitude"/><category term="page"/><category term="parse"/><category term="process"/><category term="regex"/><category term="status"/><category term="tables"/><category term="ajax"/><category term="align"/><category term="android"/><category term="array"/><category term="bar"/><category term="block"/><category term="bookmark"/><category term="carousel"/><category term="code"/><category term="codeigniter"/><category term="console"/><category term="convert"/><category term="custom"/><category term="domain"/><category term="download"/><category term="dynamic"/><category term="eclipse"/><category term="expire"/><category term="force"/><category term="foursquare"/><category term="json"/><category term="links"/><category term="longitude"/><category term="mac"/><category term="maps"/><category term="mysql"/><category term="online"/><category term="order"/><category term="player"/><category term="request"/><category term="save"/><category term="server"/><category term="service"/><category term="setup"/><category term="share"/><category term="soap"/><category term="string"/><category term="technical"/><category term="textarea"/><category term="transfer"/><category term="tweet"/><category term="urlencode"/><category term="username"/><category term="verify"/><category term="website"/><category term="widget"/><category term="youtube"/><category term="account"/><category term="addtype"/><category term="adjust"/><category term="adrress"/><category term="apps"/><category term="archive"/><category term="authorize"/><category term="auto"/><category term="background"/><category term="base64"/><category term="bcode"/><category term="blog"/><category term="box"/><category term="button"/><category term="cache"/><category term="callback"/><category term="category"/><category term="center"/><category term="certificate"/><category term="checkbox"/><category term="checkin"/><category term="class"/><category term="clock"/><category term="codes"/><category term="column"/><category term="command"/><category term="compatibility"/><category term="compute"/><category term="connect"/><category term="content"/><category term="cookie"/><category term="count"/><category term="cpanel"/><category term="credential"/><category term="csv"/><category term="currency"/><category term="database"/><category term="date"/><category term="debug"/><category term="degrees"/><category term="delete"/><category term="denied"/><category term="development"/><category term="device"/><category term="directory"/><category term="disable"/><category term="display"/><category term="distance"/><category term="drop"/><category term="dropbox"/><category term="e-commerce"/><category term="email"/><category term="embed"/><category term="encode"/><category term="encryption"/><category term="expenses"/><category term="explore"/><category term="extension"/><category term="external"/><category term="feed"/><category term="filter"/><category term="financial"/><category term="flash"/><category term="flexslider"/><category term="fopen"/><category term="frames"/><category term="framework"/><category term="freshbooks"/><category term="friends"/><category term="ftp"/><category term="fwrite"/><category term="geek"/><category term="generate"/><category term="geo"/><category term="godaddy"/><category term="greenpoison"/><category term="grep"/><category term="handling"/><category term="hash"/><category term="header"/><category term="headers"/><category term="height"/><category term="hide"/><category term="host"/><category term="hotshots"/><category term="https"/><category term="icontact"/><category term="identifier"/><category term="ie7"/><category term="image"/><category term="in_array"/><category term="incomes"/><category term="indent"/><category term="index"/><category term="info"/><category term="injection"/><category term="inline"/><category term="insert"/><category term="inside"/><category term="ipad"/><category term="iterm"/><category term="iterm2"/><category term="jailbreak"/><category term="jsp"/><category term="keystore"/><category term="kilometers"/><category term="kml"/><category term="labor"/><category term="libraries"/><category term="link"/><category term="linux"/><category term="list"/><category term="longtitude"/><category term="lwp"/><category term="main"/><category term="map"/><category term="md5"/><category term="meebo"/><category term="method"/><category term="miles"/><category term="misalignment"/><category term="mobile"/><category term="mod_rewrite"/><category term="modal"/><category term="multiple"/><category term="net"/><category term="network"/><category term="number"/><category term="numbers"/><category term="nusoap"/><category term="object"/><category term="open"/><category term="opensource"/><category term="oscommerce"/><category term="outside"/><category term="pages"/><category term="parameters"/><category term="password"/><category term="payables"/><category term="payment"/><category term="paypal"/><category term="people"/><category term="permanent"/><category term="philstar"/><category term="phonegap"/><category term="playlist"/><category term="profession"/><category term="progress"/><category term="pros"/><category term="protocol"/><category term="proxy"/><category term="qr"/><category term="qrcode"/><category term="query"/><category term="radians"/><category term="random"/><category term="record"/><category term="redirection"/><category term="register"/><category term="remember"/><category term="reports"/><category term="repository"/><category term="research"/><category term="resize"/><category term="resolution"/><category term="rows"/><category term="rsync"/><category term="script"/><category term="sdk"/><category term="secret"/><category term="session"/><category term="sftp"/><category term="shadow"/><category term="shop"/><category term="signature"/><category term="size"/><category term="slider"/><category term="slug"/><category term="smart"/><category term="socket"/><category term="sort"/><category term="sources"/><category term="sql"/><category term="ssl"/><category term="standard"/><category term="static"/><category term="statistics"/><category term="stream"/><category term="stripslashes"/><category term="sub"/><category term="submit"/><category term="summary"/><category term="support"/><category term="sync"/><category term="tab"/><category term="technology"/><category term="text"/><category term="ticket"/><category term="time"/><category term="tips"/><category term="toggle"/><category term="top"/><category term="total"/><category term="transparent"/><category term="tricks"/><category term="triggers"/><category term="types"/><category term="ucp"/><category term="unique"/><category term="unix"/><category term="update"/><category term="upload"/><category term="user"/><category term="validate"/><category term="values"/><category term="vertical"/><category term="watcher"/><category term="webview"/><category term="width"/><category term="wsdl"/><category term="years"/><category term="zip"/><category term="zoom"/><title type='text'>Hotshots Point of View</title><subtitle type='html'>You should know your purpose in life, make a difference, and believe in yourself. Always think positive, take the risk and move forward. Do that, then before you know it, you&#39;re already the man you always wanted. Cheers!!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>106</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-2209072476798154052</id><published>2019-02-14T10:32:00.001+08:00</published><updated>2019-02-14T10:36:31.139+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="csv"/><category scheme="http://www.blogger.com/atom/ns#" term="parse"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>Parsing CSV on PHP</title><content type='html'>This is a PHP function that you can use in parsing CSV that will return an array.&lt;br /&gt;
&lt;br /&gt;
This will parse even a non Windows CSV format which is difficult to parse with hidden new lines.&lt;br /&gt;
&lt;br /&gt;
Hope this helps a lot! &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
public function csvToArray($filename=&#39;&#39;, $delimiter=&#39;,&#39;)
{&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; if (!file_exists($filename) || !is_readable($filename)) return FALSE;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; $header = &#39;&#39;;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; $data = array();&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&amp;nbsp; if (($handle = fopen($filename, &#39;r&#39;)) !== FALSE) :&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $tmpfile = fopen(&quot;$filename.tmp&quot;, &#39;w+&#39;);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!feof($handle)) {&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $line = trim(fgets($handle));&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $lines = preg_split(&quot;(\r|\n|\r\n)&quot;, $line);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ($lines as $row) :&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fwrite($tmpfile, &quot;$row\n&quot;);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endforeach;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fclose($tmpfile);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fclose($handle);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; endif;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&amp;nbsp; if (($handle = fopen(&quot;$filename.tmp&quot;, &#39;r&#39;)) !== FALSE) :&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) {&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!@$row[0]) continue;
            if (!$header) :&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $header = $row;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else :&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data[] = array_combine($header, $row);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endif;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fclose($handle);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; endif;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&amp;nbsp; unlink(&quot;$filename.tmp&quot;);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; return $data;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;}

&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/2209072476798154052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2019/02/parsing-csv-on-php.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/2209072476798154052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/2209072476798154052'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2019/02/parsing-csv-on-php.html' title='Parsing CSV on PHP'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-7405136361369299665</id><published>2016-06-10T08:41:00.000+08:00</published><updated>2016-06-10T08:45:04.185+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="expenses"/><category scheme="http://www.blogger.com/atom/ns#" term="financial"/><category scheme="http://www.blogger.com/atom/ns#" term="incomes"/><category scheme="http://www.blogger.com/atom/ns#" term="online"/><category scheme="http://www.blogger.com/atom/ns#" term="payables"/><category scheme="http://www.blogger.com/atom/ns#" term="register"/><category scheme="http://www.blogger.com/atom/ns#" term="reports"/><category scheme="http://www.blogger.com/atom/ns#" term="sources"/><category scheme="http://www.blogger.com/atom/ns#" term="summary"/><title type='text'>Code Financial to manage your finances online.</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://codefinancial.net/&quot; imageanchor=&quot;1&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;255&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpGrJPdbOSvM5EMoAyfrv4zpkP5XmbQcNJo9CfP0yWXERG5AAScm4I5ddzJItfn1F0FY4HlAEyxXighq41b9SZDEptIPUpqzx__DMi_rwyF8R620IhZ0e4TWn1MxZN8C85bY8ILvvZOVE/s320/mac-financial.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;a href=&quot;http://coders.com.ph/&quot; target=&quot;_blank&quot;&gt;Coders Technology Solutions&lt;/a&gt; been developing platforms that will help small and medium scale entrepreneur on managing their businesses, one of which is their &lt;a href=&quot;http://codefinancial.net/&quot; target=&quot;_blank&quot;&gt;Code Financial&lt;/a&gt; which is an online solution to manage finances.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://codefinancial.net/&quot; target=&quot;_blank&quot;&gt;Code Financial&lt;/a&gt; is totally FREE and can really help you manage your finances. They have 4 major modules such as Sources, Payables, Incomes, and Expenses. The sources are the source of income whether it is a client, institution, or company while payables are institutions, establishments, utilities, etc. which you pay for. They also have flexible reports which you can easily select which sources and payables you want to be included and the summary in which you have a good view of how your finances for the year, monthly, semi-monthly, and daily.&lt;br /&gt;
&lt;br /&gt;
This really help me a lot and hope it can help you too. So, register now and start managing your finances. You can register to &lt;a href=&quot;http://codefinancial.net/register&quot; target=&quot;_blank&quot;&gt;http://codefinancial.net/register&lt;/a&gt; and please share it with your friends who are in need.</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/7405136361369299665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2016/06/code-financial-to-manage-your-finances.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/7405136361369299665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/7405136361369299665'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2016/06/code-financial-to-manage-your-finances.html' title='Code Financial to manage your finances online.'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpGrJPdbOSvM5EMoAyfrv4zpkP5XmbQcNJo9CfP0yWXERG5AAScm4I5ddzJItfn1F0FY4HlAEyxXighq41b9SZDEptIPUpqzx__DMi_rwyF8R620IhZ0e4TWn1MxZN8C85bY8ILvvZOVE/s72-c/mac-financial.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-9140281285196924561</id><published>2015-10-05T16:04:00.000+08:00</published><updated>2015-10-05T16:08:20.718+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="convert"/><category scheme="http://www.blogger.com/atom/ns#" term="links"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="qr"/><category scheme="http://www.blogger.com/atom/ns#" term="qrcode"/><category scheme="http://www.blogger.com/atom/ns#" term="share"/><category scheme="http://www.blogger.com/atom/ns#" term="url"/><title type='text'>Code URL to shorten your links</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://codeurl.net/&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;184&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu1Wnc7hc3DGnH65zKsPcEs59zC1jhdE8WGe_qvUj89eJSwqoTwqoPKFDBLRvPx4h25hgCcPWZr8fbG8rzeN8GNmeaJE-EyjvogmqHM159HhA3dzGNqKtbLSsIm-APofjgJ3K3MsRUKeI/s320/codelink.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I just recently launched my new app - &lt;a href=&quot;http://codeurl.net/&quot;&gt;codeurl.net&lt;/a&gt; which is very useful for people who wants to shorten links.&lt;br /&gt;
&lt;br /&gt;
One of the key features of this app which is not on the other app like this is the QR Code which you can use to post on your site, etc.. I also have a share functionality for you to share the links from the app itself. There is also a simple analytics to see the number of clicks been made with your links, and more improvements in the future.&lt;br /&gt;
&lt;br /&gt;
You can also customize your links by putting the code that you want using your FREE credits which you can earn by simply register to the app - &lt;a href=&quot;http://codeurl.net/register&quot;&gt;codeurl.net/register&lt;/a&gt; and earn more by inviting friends to sign up - &lt;a href=&quot;http://codeurl.net/invite/create&quot;&gt;codeurl.net/invite/create &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Registration is totally FREE!&lt;br /&gt;
&lt;br /&gt;
Hope you like it and would like to hear comments for improvements.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/9140281285196924561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2015/10/code-url-to-shorten-your-links.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/9140281285196924561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/9140281285196924561'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2015/10/code-url-to-shorten-your-links.html' title='Code URL to shorten your links'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu1Wnc7hc3DGnH65zKsPcEs59zC1jhdE8WGe_qvUj89eJSwqoTwqoPKFDBLRvPx4h25hgCcPWZr8fbG8rzeN8GNmeaJE-EyjvogmqHM159HhA3dzGNqKtbLSsIm-APofjgJ3K3MsRUKeI/s72-c/codelink.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-1321909188736610415</id><published>2015-04-08T19:02:00.000+08:00</published><updated>2015-04-08T19:02:53.394+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="files"/><category scheme="http://www.blogger.com/atom/ns#" term="fopen"/><category scheme="http://www.blogger.com/atom/ns#" term="fwrite"/><category scheme="http://www.blogger.com/atom/ns#" term="link"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="save"/><category scheme="http://www.blogger.com/atom/ns#" term="server"/><category scheme="http://www.blogger.com/atom/ns#" term="url"/><title type='text'>Download files from URL and save it to the server.</title><content type='html'>This is a simple script that will download files from a URL then will save it to your own PC or server. Hope this helps a lot.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;?php&lt;br /&gt;&lt;br /&gt;$source = &#39;http://dev.axonitconsulting.com/digitalwallet/images/logo-blue-pink.png&#39;;&lt;br /&gt;$destination = &#39;./logo-blue-pink.png&#39;;&lt;br /&gt;&lt;br /&gt;dloadSave($file_source, $file_target);&lt;br /&gt;&lt;br /&gt;function dloadSave($source=&#39;&#39;, $destination=&#39;./&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $rh = fopen($source, &#39;rb&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $wh = fopen($destination, &#39;wb&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($rh===false || $wh===false) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // can&#39;t read files&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!feof($rh)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fwrite($wh, fread($rh, 1024)) === FALSE) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // can&#39;t write to file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fclose($rh);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fclose($wh);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;?&amp;gt;
&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/1321909188736610415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2015/04/download-files-from-url-and-save-it-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/1321909188736610415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/1321909188736610415'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2015/04/download-files-from-url-and-save-it-to.html' title='Download files from URL and save it to the server.'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-4613102595275653212</id><published>2014-05-27T18:08:00.000+08:00</published><updated>2014-05-27T18:08:01.164+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="api"/><category scheme="http://www.blogger.com/atom/ns#" term="count"/><category scheme="http://www.blogger.com/atom/ns#" term="facebook"/><category scheme="http://www.blogger.com/atom/ns#" term="friends"/><category scheme="http://www.blogger.com/atom/ns#" term="json"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="total"/><title type='text'>How to get the total facebook friends in PHP</title><content type='html'>This is just a simple script that will retrieve the total facebook friends of specific user using the graph api. 
We will be using graph api along with the FQL to get the friend count of the user and by doing that we need the facebook id which we can retrieve by authorizing our app with facebook API.&lt;br /&gt;
&lt;br /&gt;
The output is on JSON which we can decode via PHP, please see sample below.&lt;br /&gt;
&lt;code&gt;
{
   &quot;data&quot;: [
      {
         &quot;friend_count&quot;: 740
      }
   ]
}&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;?php&amp;nbsp; &lt;br /&gt;
$fbUserId = &amp;lt;your facebook id&amp;gt;;&lt;br /&gt;
$json = file_get_contents(&quot;https://graph.facebook.com/fql?q=SELECT%20friend_count%20FROM%20user%20WHERE%20uid=$fbUserId&quot;);&lt;br /&gt;
$json = json_decode($json);&lt;br /&gt;echo @$json-&amp;gt;data[0]-&amp;gt;friend_count;&lt;br /&gt;
?&amp;gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Hope this helps, please leave a comment if you like this post.</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/4613102595275653212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2014/05/how-to-get-total-facebook-friends-in-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/4613102595275653212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/4613102595275653212'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2014/05/how-to-get-total-facebook-friends-in-php.html' title='How to get the total facebook friends in PHP'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-4891386783671434058</id><published>2014-02-22T13:10:00.002+08:00</published><updated>2014-02-22T13:27:23.180+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="base64"/><category scheme="http://www.blogger.com/atom/ns#" term="data"/><category scheme="http://www.blogger.com/atom/ns#" term="file"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="save"/><category scheme="http://www.blogger.com/atom/ns#" term="url"/><title type='text'>How to save data url into file on PHP</title><content type='html'>I have a simple script below written on PHP that will save the data url in a file. The example below will save the file on PDF and PNG file. You will notice here that the only difference are the file type and the file name which should comply with the file type you are saving. From the script below, you should be able to figure out how to save the other file types.&lt;br /&gt;
&lt;br /&gt;
This is for saving an image file &quot;PNG&quot;, you can also try &quot;JPEG&quot; and other image files.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$base_url = &#39;http://www.example.com/&#39;;&lt;br /&gt;
$file_type = &#39;image/png&#39;;&lt;br /&gt;
$file_base = $_POST[&#39;dataurl&#39;];&lt;br /&gt;
$file_name = &quot;file-&quot;.time().&quot;.png&quot;;&lt;br /&gt;
&lt;br /&gt;
$file_base = str_replace(&#39;data:&#39;.$file_type.&#39;;base64,&#39;, &#39;&#39;, $file_base);&lt;br /&gt;
$file_base = str_replace(&#39;[removed]&#39;, &#39;&#39;, $file_base);&lt;br /&gt;
&lt;br /&gt;
file_put_contents(getcwd().&quot;/files/$file_name&quot;, base64_decode($file_base));&lt;br /&gt;
echo $base_url.&quot;files/$file_name&quot;;&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
The script below is for saving an application data &quot;PDF&quot; file.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$base_url = &#39;http://www.example.com/&#39;;&lt;br /&gt;
$file_type = &#39;application/pdf&#39;;&lt;br /&gt;
$file_base = $_POST[&#39;dataurl&#39;];&lt;br /&gt;
$file_name = &quot;file-&quot;.time().&quot;.pdf&quot;;&lt;br /&gt;
&lt;br /&gt;
$file_base = str_replace(&#39;data:&#39;.$file_type.&#39;;base64,&#39;, &#39;&#39;, $file_base);&lt;br /&gt;
$file_base = str_replace(&#39;[removed]&#39;, &#39;&#39;, $file_base);&lt;br /&gt;
&lt;br /&gt;
file_put_contents(getcwd().&quot;/files/$file_name&quot;, base64_decode($file_base));&lt;br /&gt;
echo $base_url.&quot;files/$file_name&quot;;&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Hope this will help a lot with your development. Happy coding guys!!&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/4891386783671434058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2014/02/how-to-save-data-url-into-file-using-php.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/4891386783671434058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/4891386783671434058'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2014/02/how-to-save-data-url-into-file-using-php.html' title='How to save data url into file on PHP'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-7461739906256488000</id><published>2014-02-04T18:06:00.003+08:00</published><updated>2014-02-04T18:06:35.640+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="carousel"/><category scheme="http://www.blogger.com/atom/ns#" term="flexslider"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="jquery"/><category scheme="http://www.blogger.com/atom/ns#" term="multiple"/><category scheme="http://www.blogger.com/atom/ns#" term="rows"/><category scheme="http://www.blogger.com/atom/ns#" term="slider"/><title type='text'>How to create multiple row carousel on FlexSlider</title><content type='html'>I am using flexslider on one of the page I&#39;m working on but got in to problem when the carousel would need to be in two(2) rows. The problem is that there&#39;s no available option on flexslider to do it. So, what I did is to do a work around on my own. Please see below of what I did.&lt;br /&gt;
&lt;br /&gt;
First, I set the basic carousel config on flexslider, this is the carousel in one(1) row. Please take note that you need to load the flexslider plugin on your page, you can download it here - &lt;a target=&quot;_blank&quot; href=&quot;http://www.woothemes.com/flexslider/&quot;&gt;http://www.woothemes.com/flexslider/&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$(window).load(function() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var itemCnt = 5; // this will be the number of columns per row&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var iWidth = parseFloat($(&#39;.flexslider&#39;).width() / itemCnt);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&#39;.flexslider&#39;).flexslider({&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; animation: &quot;slide&quot;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slideshowSpeed: 1000,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; animationSpeed: 300,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; animationLoop: false,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; directionNav: false,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slideshow: false,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; touch: true,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itemWidth: iWidth,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minItems: itemCnt,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; maxItems: itemCnt&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;
});&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Next, is to create a function that will create 2 rows from the basic 1 row slider carousel and this will be called on start function of the slider.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
function make2Rows(iWidth) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var iHeight = parseFloat($(&#39;.flexslider .slides &amp;gt; li&#39;).height());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&#39;.alliance-list .slides &amp;gt; li&#39;).css(&#39;width&#39;, iWidth+&#39;px&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&#39;.alliance-list .slides &amp;gt; li:nth-child(even)&#39;).css(&#39;margin&#39;, iHeight+&#39;px 0px 0px -&#39;+iWidth+&#39;px&#39;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$(window).load(function() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var itemCnt = 5; // this will be the number of columns per row&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var iWidth = parseFloat($(&#39;.flexslider&#39;).width() / itemCnt);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&#39;.flexslider&#39;).flexslider({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; animation: &quot;slide&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slideshowSpeed: 1000,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; animationSpeed: 300,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; animationLoop: false,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; directionNav: false,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slideshow: false,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; touch: true,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itemWidth: iWidth,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minItems: itemCnt,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; maxItems: itemCnt,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; start: make2Rows(iWidth)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;
});&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
That&#39;s it and hope this would help anyone who are using flexslider as carousel. &lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/7461739906256488000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2014/02/how-to-create-multiple-row-carousel-on.html#comment-form' title='45 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/7461739906256488000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/7461739906256488000'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2014/02/how-to-create-multiple-row-carousel-on.html' title='How to create multiple row carousel on FlexSlider'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>45</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-2555350121866065838</id><published>2014-01-24T17:33:00.001+08:00</published><updated>2014-01-24T17:33:40.431+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="application"/><category scheme="http://www.blogger.com/atom/ns#" term="browser"/><category scheme="http://www.blogger.com/atom/ns#" term="device"/><category scheme="http://www.blogger.com/atom/ns#" term="external"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="links"/><category scheme="http://www.blogger.com/atom/ns#" term="open"/><category scheme="http://www.blogger.com/atom/ns#" term="phonegap"/><category scheme="http://www.blogger.com/atom/ns#" term="webview"/><title type='text'>External links to open InAppBrowser or System Browser in Phonegap webView application</title><content type='html'>I had a problem in my phonegap application that open external link within my application. The problem is that my webview page was replaced by external link. What I wanted is that my external link should open up on safari or system browser instead.&lt;br /&gt;
&lt;br /&gt;So, to resolve the issue here&#39;s what I did.&lt;br /&gt;
&lt;br /&gt;
First, we need to add cordova.js in all our pages. The latest cordova.js or phonegap.js can be downloaded from the phonegap website - &lt;a href=&quot;http://www.phonegap/install&quot;&gt;http://www.phonegap/install&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;script src=&quot;js/cordova.js&quot; type=&quot;text/javascript&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
You might need to install the inappbrowser plugin if needed but I believe on the latest cordova version, this was already part of the framework but just in case you needed, you can execute this command via console on your application directory to install the plugin.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Next, is to add the 2 javascript function below. I have here 2 function to choose from whether you want the link to open InAppBrowser or System Browser.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function openURLInApp(href) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var w = window.open(href, &#39;_blank&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w.opener = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w.document.write(&#39;&amp;lt;META HTTP-EQUIV=&quot;refresh&quot; content=&quot;0; url=&#39;+href+&#39;&quot;&amp;gt;&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w.document.close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function openURLToBrowser(href) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var url = encodeURI(href);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.open(url, &#39;_system&#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, we need to call the function above on every external link we want to open on either system browser or in app browser. Please see below.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;a href=&quot;#&quot; onclick=&#39;openURLInApp(&quot;http://www.google.com&quot;);&#39;&amp;gt;Google&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Hope this will help a lot on developing device application. Happy coding!!
</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/2555350121866065838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2014/01/external-links-to-open-inappbrowser-or.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/2555350121866065838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/2555350121866065838'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2014/01/external-links-to-open-inappbrowser-or.html' title='External links to open InAppBrowser or System Browser in Phonegap webView application'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-9095937450124555706</id><published>2013-12-17T09:26:00.001+08:00</published><updated>2013-12-24T10:58:47.413+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="function"/><category scheme="http://www.blogger.com/atom/ns#" term="page"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="post"/><category scheme="http://www.blogger.com/atom/ns#" term="slug"/><category scheme="http://www.blogger.com/atom/ns#" term="wordpress"/><title type='text'>get_page_by_slug in wordpress</title><content type='html'>I&#39;m developing a wordpress site and I need a function that will retrieve the page information from a given slug. I&#39;d been looking into wordpress functions but I can&#39;t find it, what I saw are just &lt;i&gt;get_page_by_path&lt;/i&gt; and &lt;i&gt;get_page_by_title&lt;/i&gt; which are not the perfect function I need for the functionality I need for the site.&lt;br /&gt;
&lt;br /&gt;
So, here&#39;s what I did. I checked out the existing functionality which is most likely the same of what I wanted to achieve &lt;i&gt;get_page_by_title&lt;/i&gt; then from there I was able to arrived a new function &lt;i&gt;get_page_by_slug&lt;/i&gt; that will retrieve the page information from a slug.&lt;br /&gt;
&lt;br /&gt;
Please see below, hope this helps a lot on building your wordpress site and hopefully this would be included on the next version of wordpress.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
/**&lt;br /&gt;&amp;nbsp;* Retrieve a page given its slug.&lt;br /&gt;&amp;nbsp;* @uses $wpdb&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;* @param string $page_slug Page slug&lt;br /&gt;&amp;nbsp;* @param string $output Optional. Output type. OBJECT, ARRAY_N, or ARRAY_A. Default OBJECT.&lt;br /&gt;&amp;nbsp;* @param string $post_type Optional. Post type. Default page.&lt;br /&gt;&amp;nbsp;* @return WP_Post|null WP_Post on success or null on failure&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;function get_page_by_slug($page_slug, $output = OBJECT, $post_type = &#39;page&#39; ) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; global $wpdb;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $page = $wpdb-&amp;gt;get_var( $wpdb-&amp;gt;prepare( &quot;SELECT ID FROM $wpdb-&amp;gt;posts WHERE post_name = %s AND post_type= %s&quot;, $page_slug, $post_type ) );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( $page )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return get_post( $page, $output );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;br /&gt;}
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Please take note that you use this as well on retrieving post coz technically, page and post are the same but with different post type, you just need to pass on third parameter as &quot;post&quot;. To make it much clearer with names, please see get_post_by_slug function below.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;/**&lt;br /&gt;&amp;nbsp;* Retrieve a post given its slug.&lt;br /&gt;&amp;nbsp;* @uses $wpdb&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;* @param string $slug Post slug&lt;br /&gt;&amp;nbsp;* @param string $output Optional. Output type. OBJECT, ARRAY_N, or ARRAY_A. Default OBJECT.&lt;br /&gt;&amp;nbsp;* @param string $type Optional. Post type. Default page.&lt;br /&gt;&amp;nbsp;* @return WP_Post|null WP_Post on success or null on failure&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;function get_post_by_slug($slug, $output = OBJECT, $type = &#39;post&#39; ) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; global $wpdb;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 $post = $wpdb-&amp;gt;get_var( $wpdb-&amp;gt;prepare( &quot;SELECT ID FROM 
$wpdb-&amp;gt;posts WHERE post_name = %s AND post_type= %s&quot;, $slug, 
$type ) );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( $post )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return get_post( $post, $output );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;br /&gt;}&lt;/code&gt; </content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/9095937450124555706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2013/12/getpagebyslug-in-wordpress.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/9095937450124555706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/9095937450124555706'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2013/12/getpagebyslug-in-wordpress.html' title='get_page_by_slug in wordpress'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-4964017356281650193</id><published>2013-12-10T16:15:00.000+08:00</published><updated>2013-12-10T16:15:30.317+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="array"/><category scheme="http://www.blogger.com/atom/ns#" term="function"/><category scheme="http://www.blogger.com/atom/ns#" term="in_array"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>in_array function in javascript</title><content type='html'>This is a simple post for the converted in_array function in javascript. This function will return boolean whether the value is in the array or not.
&lt;code&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
function in_array(array, id) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(var i=0; i&amp;lt;array.length; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (array[i]==id) return true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
Hope you like this post, probably short but will help a lot.</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/4964017356281650193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2013/12/inarray-function-in-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/4964017356281650193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/4964017356281650193'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2013/12/inarray-function-in-javascript.html' title='in_array function in javascript'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-9172104152430822733</id><published>2013-11-07T17:19:00.001+08:00</published><updated>2013-11-22T11:56:24.216+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="credential"/><category scheme="http://www.blogger.com/atom/ns#" term="login"/><category scheme="http://www.blogger.com/atom/ns#" term="password"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="username"/><category scheme="http://www.blogger.com/atom/ns#" term="wordpress"/><title type='text'>Create login page in your wordpress site</title><content type='html'>You can use wordpress admin login functionality for your own website login page. It will use your wordpress table wp_users to validate credentials. Advantage here is that you can manage users via wordpress admin.&lt;br /&gt;
&lt;br /&gt;
If you are using a script outside your template, you should require wp-load.php so you can use its functionality. &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
require_once( dirname(__FILE__) . &#39;/wp-load.php&#39; );
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
If your login page is inside your template say you have your page-login.php, then you don&#39;t need to require wp-load.php coz it&#39;s included already upon loading the page.&lt;br /&gt;
&lt;br /&gt;
Once you have that in place, you can now call the functionality to validate login credential. You just simply call the function user_pass_ok() with parameters: username and password.&lt;br /&gt;
&lt;br /&gt;
Please see sample usage below, you can either use it via GET or POST method, depends on how you handle your login page.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$username = @$_POST[&#39;username&#39;];&lt;br /&gt;
$password = @$_POST[&#39;password&#39;];&lt;br /&gt;
&lt;br /&gt;
if (user_pass_ok($username, $password)) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &#39;login success&#39;;&lt;br /&gt;
} else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &#39;login failed&#39;;&lt;br /&gt;
}
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
This is just a simple post but hope this helps in a way. Please leave a comment if you like this post.</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/9172104152430822733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2013/11/create-your-login-page-in-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/9172104152430822733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/9172104152430822733'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2013/11/create-your-login-page-in-your.html' title='Create login page in your wordpress site'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-6688998342975202129</id><published>2013-11-05T23:58:00.000+08:00</published><updated>2013-12-17T14:20:26.437+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="api"/><category scheme="http://www.blogger.com/atom/ns#" term="box"/><category scheme="http://www.blogger.com/atom/ns#" term="client"/><category scheme="http://www.blogger.com/atom/ns#" term="how to"/><category scheme="http://www.blogger.com/atom/ns#" term="integration"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>Box API Integration on PHP</title><content type='html'>I&#39;d been busy and not able to post anything here for a long time. Anyway, I wanted to post this integration I just did so that I will have a reference if ever I have to develop something with &lt;a href=&quot;http://box.com/&quot;&gt;box.com&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
First of all, you need to register an account on the link below. You can choose to have a FREE or personal account if you want to try it out.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://app.box.com/pricing/&quot;&gt;https://app.box.com/pricing/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
After the registration, you need to create an application that we will use for integration.&lt;br /&gt;
Go to http://developers.box.com then click &quot;Get API Key&quot; button to create an app.&lt;br /&gt;
The application you created will have client id and client secret, save it somewhere else coz we will use it later on.&lt;br /&gt;
&lt;br /&gt;
Once we have the application and the credential for API access, we can now start the coding part, just follow the simple steps below.&lt;br /&gt;
&lt;br /&gt;
We need to authorize our application to access our box account. We can either access the authorize URL via GET or POST method with response_type, state, client_id and redirect_uri parameter. The redirect uri might need to be on https but for localhost testing, you can use http. You can also set the redirect uri on your box application under oauth2 section.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
https://www.box.com/api/oauth2/authorize?response_type=code&amp;amp;state=authenticated&amp;amp;client_id=&amp;lt;your client id&amp;gt;&amp;amp;redirect_uri=&amp;lt;your redirect uri&amp;gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
The user will have to enter his/her credential and grant access to our application. After authorizing the app, box will redirect the user to the redirect uri parameter or the redirect uri set on your box application.&lt;br /&gt;
&lt;br /&gt;
The box will redirect the user via GET method with the &quot;code&quot; parameter which we will use to get an access token. Once you have the code, you will need to submit POST request to box with the code, client_id, and client_secret parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
endpoint url:&lt;br /&gt;https://www.box.com/api/oauth2/token&lt;br /&gt;&lt;br /&gt;parameters:&lt;br /&gt;grant_type = authorization_code&lt;br /&gt;code = &amp;lt;this will be the code you get from box after authorize process&amp;gt;&lt;br /&gt;client_id = &amp;lt;your box client id&amp;gt;&lt;br /&gt;client_secret = &amp;lt;your box client secret&amp;gt; 
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
The script below will get the &quot;code&quot; parameter from box in exchange with an access token and refresh token. The output will be the access token, refresh token and expiration. You need to store those information either via session or database to call API methods after.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$code = $_GET[&#39;code&#39;];&lt;br /&gt;if ($code) token($code);&lt;br /&gt;function token($code=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $client_id = &#39;&amp;lt;your box client id&amp;gt;&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $client_secret = &#39;&amp;lt;your box client secret&amp;gt;&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://www.box.com/api/oauth2/token&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;grant_type=authorization_code&amp;amp;code=$code&amp;amp;client_id=&quot;.$client_id.&quot;&amp;amp;client_secret=&quot;.$client_secret;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $curlcmd = &quot;curl $url -d &#39;$param&#39; -X POST&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = exec($curlcmd);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = json_decode($output);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $access_token = $json-&amp;gt;access_token;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $refresh_token = $json-&amp;gt;refresh_token;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
For you to have an idea on how it works with a readily client API, please see below. Hope this will help you with your development. Leave a comment if you like this post.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;?php&lt;br /&gt;&lt;br /&gt;$box = new wu_boxapi();&lt;br /&gt;// this will set the redirect uri which is the same script&lt;br /&gt;// you just need to put the name of you script here replacing &quot;/box-client-api.php&quot; which is my current file.&lt;br /&gt;$box-&amp;gt;set_redirect_uri(getcwd().&#39;/box-client-api.php&#39;);&lt;br /&gt;&lt;br /&gt;// get access token&lt;br /&gt;$code = $_GET[&#39;code&#39;];&lt;br /&gt;if ($code) $box-&amp;gt;token($code);&lt;br /&gt;&lt;br /&gt;// list folders in your account&lt;br /&gt;$folder_id = 0;&lt;br /&gt;$box-&amp;gt;list_folders($folder_id);&lt;br /&gt;&lt;br /&gt;// search for files in your account&lt;br /&gt;$keyword = &#39;&#39;;&lt;br /&gt;$box-&amp;gt;search($keyword);&lt;br /&gt;&lt;br /&gt;class boxapi {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $box_email = &#39;&amp;lt;your box email account&amp;gt;&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $client_id = &#39;&amp;lt;your box client id&amp;gt;&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $client_secret = &#39;&amp;lt;your box client secret&amp;gt;&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $redirect_uri = &#39;&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $access_token = &#39;&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $refresh_token = &#39;&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $force_refresh = false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function __construct() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; nothing to do here...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function set_redirect_uri($uri=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;redirect_uri = urlencode($uri);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function authorize() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://www.box.com/api/oauth2/authorize?response_type=code&amp;amp;state=authenticated&amp;amp;client_id=&quot;.$this-&amp;gt;client_id.&quot;&amp;amp;redirect_uri=&quot;.$this-&amp;gt;redirect_uri;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; header(&quot;Location: $url&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function check_token() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;access_token = $_SESSION[&#39;access_token&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;refresh_token = $_SESSION[&#39;refresh_token&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $timediff = time() - $_SESSION[&#39;timestamp&#39;];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!@$this-&amp;gt;access_token) $this-&amp;gt;authorize();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($timediff &amp;gt;= 3600 || $this-&amp;gt;force_refresh) $this-&amp;gt;refresh();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function token($code=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://www.box.com/api/oauth2/token&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;grant_type=authorization_code&amp;amp;code=$code&amp;amp;client_id=&quot;.$this-&amp;gt;client_id.&quot;&amp;amp;client_secret=&quot;.$this-&amp;gt;client_secret;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $curlcmd = &quot;curl $url -d &#39;$param&#39; -X POST&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = exec($curlcmd);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = json_decode($output);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;access_token = $json-&amp;gt;access_token;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;refresh_token = $json-&amp;gt;refresh_token;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;access_token&#39;] = $this-&amp;gt;access_token;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;refresh_token&#39;] = $this-&amp;gt;refresh_token;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;timestamp&#39;] = time();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function refresh() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://www.box.com/api/oauth2/token&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;grant_type=refresh_token&amp;amp;refresh_token=&quot;.$this-&amp;gt;refresh_token.&quot;&amp;amp;client_id=&quot;.$this-&amp;gt;client_id.&quot;&amp;amp;client_secret=&quot;.$this-&amp;gt;client_secret;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $curlcmd = &quot;curl $url -d &#39;$param&#39; -X POST&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = exec($curlcmd);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = json_decode($output);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;access_token = $json-&amp;gt;access_token;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;refresh_token = $json-&amp;gt;refresh_token;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;access_token&#39;] = $this-&amp;gt;access_token;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;refresh_token&#39;] = $this-&amp;gt;refresh_token;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;timestamp&#39;] = time();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function list_folders($folder_id=0) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;check_token();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://api.box.com/2.0/folders/$folder_id&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $curlcmd = &quot;curl $url -H &#39;Authorization: Bearer &quot;.$this-&amp;gt;access_token.&quot;&#39;&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = exec($curlcmd);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = json_decode($output);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_dump(@$json);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function search($keyword=&#39;&#39;, $limit=30, $offset=0) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;check_token();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://api.box.com/2.0/search&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;query=$keyword&amp;amp;limit=$limit&amp;amp;offset=$offset&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $curlcmd = &quot;curl &#39;$url?$param&#39; -H &#39;Authorization: Bearer &quot;.$this-&amp;gt;access_token.&quot;&#39;&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = exec($curlcmd);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = json_decode($output);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_dump(@$json);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;?&amp;gt; &lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/6688998342975202129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2013/11/box-client-api-for-integration-in-php.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/6688998342975202129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/6688998342975202129'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2013/11/box-client-api-for-integration-in-php.html' title='Box API Integration on PHP'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-6199268325827063618</id><published>2013-02-01T11:41:00.001+08:00</published><updated>2013-02-01T11:41:20.960+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="how to"/><category scheme="http://www.blogger.com/atom/ns#" term="indent"/><category scheme="http://www.blogger.com/atom/ns#" term="iterm"/><category scheme="http://www.blogger.com/atom/ns#" term="iterm2"/><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="setup"/><category scheme="http://www.blogger.com/atom/ns#" term="standard"/><title type='text'>How to setup your indent spacing on Mac iTerm2</title><content type='html'>To change your indent spacing on your Mac iTerm2, you just need to locate your vimrc file in your mac and usually, it is located on this path /usr/share/vim/vimrc.&lt;br /&gt;
&lt;br /&gt;
Once you&#39;re able to locate your vimrc, you just need to add or update the settings of your tabstop, the value is equal to the number of spaces you want to set for your indent.&lt;br /&gt;
&lt;br /&gt;
Please see sample below.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
set tabstop=4       &quot; a tab is four spaces&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Hope this helps a lot coz it&#39;s good to have a standard indent for your programming.</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/6199268325827063618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2013/02/how-to-setup-your-indent-spacing-on-mac.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/6199268325827063618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/6199268325827063618'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2013/02/how-to-setup-your-indent-spacing-on-mac.html' title='How to setup your indent spacing on Mac iTerm2'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-7447335749855529530</id><published>2013-01-13T19:32:00.000+08:00</published><updated>2013-01-13T19:40:13.175+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="archive"/><category scheme="http://www.blogger.com/atom/ns#" term="category"/><category scheme="http://www.blogger.com/atom/ns#" term="how"/><category scheme="http://www.blogger.com/atom/ns#" term="list"/><category scheme="http://www.blogger.com/atom/ns#" term="wordpress"/><category scheme="http://www.blogger.com/atom/ns#" term="years"/><title type='text'>How to list archive years per category in wordpress</title><content type='html'>This post will teach you how to list down archive years per category in your wordpress site. The script below is using SQL statement that will query from your wordpress table and the tables involve are: &lt;b&gt;posts&lt;/b&gt;, &lt;b&gt;term_relationships&lt;/b&gt;, &lt;b&gt;term_taxonomy&lt;/b&gt;, and &lt;b&gt;terms&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&quot;SELECT DISTINCT YEAR(post_date) FROM $wpdb-&amp;gt;posts INNER JOIN 
$wpdb-&amp;gt;term_relationships ON ($wpdb-&amp;gt;posts.ID = 
$wpdb-&amp;gt;term_relationships.object_id) INNER JOIN 
$wpdb-&amp;gt;term_taxonomy ON 
($wpdb-&amp;gt;term_relationships.term_taxonomy_id = 
$wpdb-&amp;gt;term_taxonomy.term_taxonomy_id AND 
$wpdb-&amp;gt;term_taxonomy.taxonomy=&#39;category&#39;) INNER JOIN $wpdb-&amp;gt;terms 
ON ($wpdb-&amp;gt;terms.term_id = $wpdb-&amp;gt;term_taxonomy.term_id) WHERE 
$wpdb-&amp;gt;terms.slug=&#39;&amp;lt;your category slug here&amp;gt;&#39; ORDER BY post_date DESC&quot;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
To get the archive years per category slug, you just need to supply it below.&lt;br /&gt;
&lt;br /&gt;
.... &lt;code&gt;WHERE $wpdb-&amp;gt;terms.slug=&#39;&amp;lt;your category slug here&amp;gt;&#39; ORDER BY post_date DESC&quot;);&amp;nbsp; &lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
If you want to select using your category name, then change the condition above with name field $wpdb-&amp;gt;terms.name.&lt;br /&gt;
&lt;br /&gt;
.... &lt;code&gt;WHERE $wpdb-&amp;gt;terms.name=&#39;&amp;lt;your category name here&amp;gt;&#39; ORDER BY post_date DESC&quot;);&amp;nbsp; &lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;ul&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;lt;?php&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;$years = $wpdb-&amp;gt;get_col(&quot;SELECT DISTINCT YEAR(post_date) FROM $wpdb-&amp;gt;posts INNER JOIN $wpdb-&amp;gt;term_relationships ON ($wpdb-&amp;gt;posts.ID = $wpdb-&amp;gt;term_relationships.object_id) INNER JOIN $wpdb-&amp;gt;term_taxonomy ON ($wpdb-&amp;gt;term_relationships.term_taxonomy_id = $wpdb-&amp;gt;term_taxonomy.term_taxonomy_id AND $wpdb-&amp;gt;term_taxonomy.taxonomy=&#39;category&#39;) INNER JOIN $wpdb-&amp;gt;terms ON ($wpdb-&amp;gt;terms.term_id = $wpdb-&amp;gt;term_taxonomy.term_id) WHERE $wpdb-&amp;gt;terms.slug=&#39;&amp;lt;your category slug here&amp;gt;&#39; ORDER BY post_date DESC&quot;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;foreach($years as $year) : ?&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&amp;lt;a href=&quot;&amp;lt;?php echo get_year_link($year); ?&amp;gt;&quot;&amp;gt;&amp;lt;?php echo $year;?&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;lt;?php endforeach; ?&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;lt;/ul&amp;gt;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Please leave a comment if you like this post. Happy coding!!</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/7447335749855529530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2013/01/how-to-list-archive-years-per-category.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/7447335749855529530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/7447335749855529530'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2013/01/how-to-list-archive-years-per-category.html' title='How to list archive years per category in wordpress'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-154822495337005383</id><published>2013-01-13T18:54:00.001+08:00</published><updated>2013-01-13T18:54:24.204+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blog"/><category scheme="http://www.blogger.com/atom/ns#" term="get"/><category scheme="http://www.blogger.com/atom/ns#" term="info"/><category scheme="http://www.blogger.com/atom/ns#" term="wordpress"/><title type='text'>Get the blog information from your wordpress site</title><content type='html'>We have a lot of ways to get the blog information from our wordpress site but below are the 2 functions that we commonly use to get it. (1) bloginfo() and (2) get_blogingo().&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;BLOGINFO()&lt;/b&gt;
- This function will display the information about your blog, this is mostly gathered from the information you supplied in your blog settings. It can be use within your wordpress template. This function always print the result to the browser. If you need to get the actual value, you should use get_bloginfo() below.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Usage:&lt;/b&gt; bloginfo(&#39;&amp;lt;parameter&amp;gt;&#39;);&lt;b&gt;&amp;nbsp; &lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Parameters:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;name&lt;/b&gt; - the title set for the blog.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;description&lt;/b&gt; - the description set for the blog.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;admin_email&lt;/b&gt; - the email address of administrator of the blog.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;url&lt;/b&gt; - the url of the blog.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;wpurl&lt;/b&gt; - the url of the wordpress blog. this is usually the same as &quot;url&quot; parameter.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;stylesheet_directory&lt;/b&gt; - the directory of the stylesheet of the blog. this is usually the same as the theme directory that the blog was activated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;stylesheet_url&lt;/b&gt; - the url of the stylesheet of the blog. depends also on the activated theme that the blog was activated.&lt;/li&gt;
&lt;li&gt; &lt;b&gt;template_directory&lt;/b&gt; - the theme directory that the blog was activated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;template_url&lt;/b&gt; - the url of the theme directory that the blog was activated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;atom_url&lt;/b&gt; - the url of the atom feed.&lt;/li&gt;
&lt;li&gt; &lt;b&gt;rss2_url&lt;/b&gt; - the url of the rss feed. this is the latest version of rss feed. example: http://example.com/myblog/feed&lt;/li&gt;
&lt;li&gt;&lt;b&gt;rss_url&lt;/b&gt; - the url of the rss feed. this is the old version of rss feed. example: http://example.com/myblog/feed/rss&lt;/li&gt;
&lt;li&gt;&lt;b&gt;pingback_url&lt;/b&gt; - the url of xmlrpc. example: http://example.com/myblog/wp/xmlrpc.php&lt;/li&gt;
&lt;li&gt;&lt;b&gt;rdf_url&lt;/b&gt; - the url of rdf feed. example: http://example.com/myblog/feed/rdf&lt;/li&gt;
&lt;li&gt;&lt;b&gt;comments_atom_url&lt;/b&gt; - the url o&lt;/li&gt;
&lt;li&gt;f comments atom feed. example: http://example.com/myblog/comments/feed/atom&lt;/li&gt;
&lt;li&gt;&lt;b&gt;comments_rss2_url&lt;/b&gt; - the url of comments rss feed. example: http://example.com/myblog/comments/feed&lt;/li&gt;
&lt;li&gt;&lt;b&gt;charset&lt;/b&gt; - the meta tag character set of your blog. this is usually in UTF-8 to support most of the characters.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;html_type&lt;/b&gt; - the html type of your blog. usually in &quot;text/html&quot; type.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;language&lt;/b&gt; - the main language of your blog. by default set to &quot;en-US&quot;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;version&lt;/b&gt; - the version of your wordpress blog.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;text_direction&lt;/b&gt; - don&#39;t know about this but this is usually set to &quot;ltr&quot;.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;GET_BLOGINFO()&lt;/b&gt; - This function will return the information about the blog, the information here are mostly gathered from the information you supplied in your blog settings. It can be use within your wordpress template. This function will only return the results and if you need to print the result you need to either echo the result or use bloginfo() function above.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Usage:&lt;/b&gt; echo get_bloginfo(&#39;&amp;lt;parameter&amp;gt;&#39;); or $info = get_bloginfo(&#39;&amp;lt;parameter&amp;gt;&#39;);&lt;b&gt;&amp;nbsp; &lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Parameters:&lt;/b&gt; (parameters are the same as above)&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Hope this helps. Happy coding with wordpress!! </content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/154822495337005383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2013/01/get-blog-information-from-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/154822495337005383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/154822495337005383'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2013/01/get-blog-information-from-your.html' title='Get the blog information from your wordpress site'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-3400674664378558470</id><published>2012-12-08T20:15:00.000+08:00</published><updated>2012-12-08T20:15:34.370+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="file"/><category scheme="http://www.blogger.com/atom/ns#" term="how to"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="sftp"/><category scheme="http://www.blogger.com/atom/ns#" term="stream"/><category scheme="http://www.blogger.com/atom/ns#" term="transfer"/><title type='text'>How to transfer files via SFTP in PHP</title><content type='html'>It&#39;s been a long time since my last post and good I&#39;m back again. Anyway, below is my simple script to transfer files via SFTP in PHP. Hope this helps.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;?php&lt;br /&gt;&lt;br /&gt;// set your sftp credential (host, port, username, password)&lt;br /&gt;// local file (source file)&lt;br /&gt;// remote file (destination file)&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;$host = &#39;&amp;lt;host server to connect&amp;gt;&#39;;&lt;br /&gt;$port = &#39;&amp;lt;port to connect&amp;gt;&#39;;&lt;br /&gt;$user = &#39;&amp;lt;username to sftp&amp;gt;&#39;;&lt;br /&gt;$pass = &#39;&amp;lt;password to sftp&amp;gt;&#39;;&lt;br /&gt;$lfile = &#39;/path/to/local/file&#39;;&lt;br /&gt;$rfile = &#39;/path/to/remote/file&#39;;&lt;br /&gt;&lt;br /&gt;// use ssh2 php module to connect&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;// if ssh2 is not installed/enable, please install/enable)&lt;br /&gt;$connection = ssh2_connect($host, $port);&lt;br /&gt;ssh2_auth_password($connection, $user, $pass);&lt;br /&gt;&lt;br /&gt;// use sftp to connect&lt;br /&gt;$sftp = ssh2_sftp($connection);&lt;br /&gt;&lt;br /&gt;// open stream connection to remote server&lt;br /&gt;$stream = @fopen(&#39;ssh2.sftp://&#39;.$sftp.$rfile, &#39;w&#39;);&lt;br /&gt;&lt;br /&gt;try {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!$stream) throw new Exception(&quot;Could not open remote file: $rfile&quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get data of the local file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data = @file_get_contents($lfile);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($data === false) throw new Exception(&quot;Could not open local file: $lfile.&quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // write the data to stream remote file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (@fwrite($stream, $data) === false) throw new Exception(&quot;Could not send data from file: $lfile.&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo &#39;done!&#39;;&lt;br /&gt;&lt;br /&gt;} catch (Exception $e) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // echo error message&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $e-&amp;gt;getMessage();&lt;br /&gt;}&lt;br /&gt;
&lt;br /&gt;// closing the stream&lt;br /&gt;fclose($stream);&lt;br /&gt;&lt;br /&gt;?&amp;gt; 
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Hope this helps and please leave a post if you like it. Thanks!!</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/3400674664378558470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2012/12/how-to-transfer-files-via-sftp-in-php.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/3400674664378558470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/3400674664378558470'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2012/12/how-to-transfer-files-via-sftp-in-php.html' title='How to transfer files via SFTP in PHP'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-3220874399333259140</id><published>2012-09-16T20:05:00.000+08:00</published><updated>2012-09-16T20:06:19.319+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="block"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="display"/><category scheme="http://www.blogger.com/atom/ns#" term="element"/><category scheme="http://www.blogger.com/atom/ns#" term="ie"/><category scheme="http://www.blogger.com/atom/ns#" term="inline"/><category scheme="http://www.blogger.com/atom/ns#" term="zoom"/><title type='text'>CSS 101: Display inline-block not working on IE</title><content type='html'>Below is a simple post to help you with your IE problem.&lt;br /&gt;
&lt;br /&gt;
There&#39;s a problem on IE when displaying element as inline that works perfectly on other browser. On IE, it will only works on elements that are relatively inline like span element.&lt;br /&gt;
&lt;br /&gt;
For inline to work on other elements with IE, you just need to put safe on your display then set the zoom to 1. Please see tricks below.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
.yourelement {&lt;br /&gt;&amp;nbsp;&amp;nbsp;
display: inline-block;&lt;br /&gt;&amp;nbsp;&amp;nbsp;
*display: inline;&lt;br /&gt;&amp;nbsp;&amp;nbsp;
zoom:1;&lt;br /&gt;
}&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Hope this helps on your IE issues. Happy coding!!</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/3220874399333259140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2012/09/css-101-display-inline-block-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/3220874399333259140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/3220874399333259140'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2012/09/css-101-display-inline-block-not.html' title='CSS 101: Display inline-block not working on IE'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-3835009018193658071</id><published>2012-08-12T23:05:00.001+08:00</published><updated>2012-08-12T23:05:13.759+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="geo"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="kml"/><category scheme="http://www.blogger.com/atom/ns#" term="latitude"/><category scheme="http://www.blogger.com/atom/ns#" term="longitude"/><category scheme="http://www.blogger.com/atom/ns#" term="maps"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="xml"/><title type='text'>How to get Longitude / Latitude in PHP using Google Maps API</title><content type='html'>This post is just a simple script I did, built in PHP that will get the coordinates of specific location.&lt;br /&gt;
&lt;br /&gt;
The script uses google maps web service that returns XML data in which we need parse to get the information we need.&lt;br /&gt;
&lt;br /&gt;
Take note also of the URL I used, you just need to add your google maps key.&lt;br /&gt;
&lt;a href=&quot;http://maps.google.com/maps/geo?output=xml&amp;amp;oe=utf-8&amp;amp;key=enter+your+key+here&amp;amp;q=enter+your+query+here&quot;&gt;http://maps.google.com/maps/geo?output=xml&amp;amp;oe=utf-8&amp;amp;key=enter+your+key+here&amp;amp;q=enter+your+query+here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;code&gt;
&amp;lt;?php&lt;br /&gt;&lt;br /&gt;$key = &#39;AIzaSyCrPl5vXuNjPU1fgHF69YPxEopT_NziA4o&#39;; // your google maps key&lt;br /&gt;$param = &#39;T2G 0S7&#39;; // the location you want to look for, this can be postal code, map id, address, etc.&lt;br /&gt;&lt;br /&gt;$geoinfo = get_longlat($key, $param);&lt;br /&gt;var_dump($geoinfo);&lt;br /&gt;&lt;br /&gt;function get_longlat($key=&#39;&#39;, $param=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $request_url = &quot;http://maps.google.com/maps/geo?output=xml&amp;amp;key=$key&amp;amp;oe=utf-8&amp;amp;q=&quot;.urlencode($param);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $xml = simplexml_load_file($request_url);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $geoinfo = array();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!empty($xml-&amp;gt;Response)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $point = $xml-&amp;gt;Response-&amp;gt;Placemark-&amp;gt;Point;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!empty($point)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $coordinates = explode(&quot;,&quot;, $point-&amp;gt;coordinates);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $geoinfo = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;lon&#39; =&amp;gt; $coordinates[0],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;lat&#39; =&amp;gt; $coordinates[1]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $geoinfo;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;?&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;/code&gt;

You can also get other information by parsing the XML returned by the google maps web service. Please see below for the sample XML return.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;kml&amp;gt;&lt;br /&gt;
&amp;lt;Response&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;t2g 0s7&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Status&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;code&amp;gt;200&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;request&amp;gt;geocode&amp;lt;/request&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Placemark id=&quot;p1&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;address&amp;gt;Calgary, AB T2G 0S7, Canada&amp;lt;/address&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AddressDetails Accuracy=&quot;5&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Country&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CountryNameCode&amp;gt;CA&amp;lt;/CountryNameCode&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CountryName&amp;gt;Canada&amp;lt;/CountryName&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AdministrativeArea&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AdministrativeAreaName&amp;gt;AB&amp;lt;/AdministrativeAreaName&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Locality&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LocalityName&amp;gt;Calgary&amp;lt;/LocalityName&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;PostalCode&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;PostalCodeNumber&amp;gt;T2G 0S7&amp;lt;/PostalCodeNumber&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/PostalCode&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Locality&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/AdministrativeArea&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Country&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/AddressDetails&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ExtendedData&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LatLonBox north=&quot;51.0439997&quot; south=&quot;51.0413017&quot; east=&quot;-114.0367519&quot; west=&quot;-114.0394858&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ExtendedData&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Point&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;coordinates&amp;gt;-114.0380127,51.0426718,0&amp;lt;/coordinates&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Point&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Placemark&amp;gt;&lt;br /&gt;
&amp;lt;/Response&amp;gt;&lt;br /&gt;
&amp;lt;/kml&amp;gt; 
&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/3835009018193658071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2012/08/how-to-get-longitude-latitude-in-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/3835009018193658071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/3835009018193658071'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2012/08/how-to-get-longitude-latitude-in-php.html' title='How to get Longitude / Latitude in PHP using Google Maps API'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-4152912441357636903</id><published>2012-07-21T16:32:00.001+08:00</published><updated>2012-07-21T16:32:20.996+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="browser"/><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="inside"/><category scheme="http://www.blogger.com/atom/ns#" term="outside"/><category scheme="http://www.blogger.com/atom/ns#" term="shadow"/><category scheme="http://www.blogger.com/atom/ns#" term="style"/><title type='text'>Setting up shadow boxes on your website.</title><content type='html'>This is just a short post for you to put shadow inside and outside of your website&#39;s page elements such as input text box, text area, buttons, images, etc.. &lt;br /&gt;
&lt;br /&gt;
Inside Shadows:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
.in-shadow { &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-shadow: inset 1px 1px 1px #a2a2a2;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -moz-box-shadow: inset 1px 1px 1px #a2a2a2;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -webkit-box-shadow: inset 1px 1px 1px #a2a2a2;&lt;br /&gt;
}
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Outside Shadows:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
.out-shadow { &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; box-shadow: inset 1px 1px 1px #a2a2a2;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -moz-box-shadow: inset 1px 1px 1px #a2a2a2;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -webkit-box-shadow: inset 1px 1px 1px #a2a2a2;&lt;br /&gt;
}
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Hope you like this. Happy coding!!</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/4152912441357636903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2012/07/setting-up-shadow-boxes-on-your-website.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/4152912441357636903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/4152912441357636903'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2012/07/setting-up-shadow-boxes-on-your-website.html' title='Setting up shadow boxes on your website.'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-2760804435197808842</id><published>2012-07-19T10:51:00.000+08:00</published><updated>2014-03-26T18:00:12.603+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="api"/><category scheme="http://www.blogger.com/atom/ns#" term="curl"/><category scheme="http://www.blogger.com/atom/ns#" term="headers"/><category scheme="http://www.blogger.com/atom/ns#" term="icontact"/><category scheme="http://www.blogger.com/atom/ns#" term="integration"/><category scheme="http://www.blogger.com/atom/ns#" term="json"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>iContact API Integration on PHP</title><content type='html'>This post will teach you how to integrate your app with iContact. The API requires JSON for doing requests and responses. On this implementation, I used CURL which I commonly use when doing API call.&lt;br /&gt;
&lt;br /&gt;
First thing we need to do is to register on &lt;a href=&quot;http://www.icontact.com&quot;&gt;iContact&lt;/a&gt; then get an API credential. Register your app and get your application id, folder id, username and password - &lt;a href=&quot;https://app.icontact.com/icp/core/registerapp&quot;&gt;https://app.icontact.com/icp/core/registerapp&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Once we have all the credentials, we are now ready to start building our codes.&lt;br /&gt;
&lt;br /&gt;
First, we need to create a function that we will commonly use such as the headers, please see function I created for setting the headers.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
function set_headers($app_id, $user, $pass) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $headers = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;Accept: application/json&#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;Content-Type: application/json&#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;Api-Version: 2.0&#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;Api-AppId: &#39; . $app_id,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;Api-Username: &#39; . $user,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;Api-Password: &#39; . $pass&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $headers;&lt;br /&gt;}&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Next is to get information from our iContact account. Since we need the account id for all our API call, we will first request for our account information.&lt;br /&gt;
&lt;br /&gt;
This function will return JSON response which we need to parse to get the information we need.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$app_id = &#39;&amp;lt;put your app id&amp;gt;&#39;;&lt;br /&gt;$user = &#39;&amp;lt;put your username/email address&amp;gt;&#39;;&lt;br /&gt;$pass = &#39;&amp;lt;put your password&amp;gt;&#39;;&lt;br /&gt;$folder_id = &#39;&amp;lt;put your folder id&amp;gt;&#39;;&lt;br /&gt;&lt;br /&gt;$data = get_account_info($app_id, $user, $pass);&lt;br /&gt;var_dump($data);&lt;br /&gt;
&lt;br /&gt;
function get_account_info($app_id, $user, $pass) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $headers = set_headers($app_id, $user, $pass);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init(&quot;https://app.icontact.com/icp/a&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (curl_errno($ch)) echo curl_error($ch);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_close($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $json;&lt;br /&gt;}
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Sample output will be like this, which is a JSON response.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
string(582) &quot;{&quot;accounts&quot;:[{&quot;billingStreet&quot;:&quot;&quot;,&quot;billingCity&quot;:&quot;&quot;,&quot;billingState&quot;:&quot;&quot;,&quot;billingPostalCode&quot;:&quot;&quot;,&quot;billingCountry&quot;:&quot;&quot;,&quot;city&quot;:&quot;Caloocan&quot;,&quot;accountId&quot;:&quot;#######&quot;,&quot;companyName&quot;:&quot;Hotshots Point of View&quot;,&quot;country&quot;:&quot;Philippines&quot;,&quot;email&quot;:&quot;paulgonzaga80@gmail.com&quot;,&quot;enabled&quot;:&quot;1&quot;,&quot;fax&quot;:&quot;&quot;,&quot;firstName&quot;:&quot;Paul&quot;,&quot;lastName&quot;:&quot;Gonzaga&quot;,&quot;multiClientFolder&quot;:&quot;0&quot;,&quot;multiUser&quot;:&quot;0&quot;,&quot;phone&quot;:&quot;639213189673&quot;,&quot;postalCode&quot;:&quot;1421&quot;,&quot;state&quot;:&quot;NCR&quot;,&quot;street&quot;:&quot;#409 B1 L5, Bagumbong Itaas, Progressive Village, Novaliches Caloocan City1&quot;,&quot;title&quot;:&quot;&quot;,&quot;accountType&quot;:&quot;1&quot;,&quot;subscriberLimit&quot;:&quot;500&quot;}],&quot;total&quot;:1,&quot;limit&quot;:20,&quot;offset&quot;:0}&quot;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
This will return our account information which we will use for other API call. Once we have the Account ID, we can call now our client folders, though we get it already upon registration but just for the benefit of this post, we will try to get it via API call. The parameters we passed on this function is came from above call and credentials.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;$data = json_decode($data);&lt;br /&gt;
$account_id = $data-&amp;gt;accounts[0]-&amp;gt;accountId;&lt;br /&gt;
&lt;br /&gt;
$data = get_client_folders($app_id, $user, $pass, $account_id);&lt;br /&gt;var_dump($data);&lt;br /&gt;
&lt;br /&gt;
function get_client_folders($app_id, $user, $pass, $account_id) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $headers = set_headers($app_id, $user, $pass);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init(&quot;https://app.icontact.com/icp/a/$account_id/c/&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (curl_errno($ch)) echo curl_error($ch);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_close($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $json;&lt;br /&gt;}
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Sample output will be like this which is the same folder id when we do our registration.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
string(69) &quot;{&quot;clientfolders&quot;:[{&quot;clientFolderId&quot;:&quot;####&quot;,&quot;logoId&quot;:null}],&quot;total&quot;:1}&quot;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
After this, we can now proceed adding contact, getting contact information, list all our contacts, subscriptions, etc..&lt;br /&gt;
&lt;br /&gt;
The sample script I made below will help you be able to move forward with other functions. Happy coding!!&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;?php&lt;br /&gt;&lt;br /&gt;$app_id = &#39;&amp;lt;put your app id&amp;gt;&#39;;&lt;br /&gt;$user = &#39;&amp;lt;put your username/email address&amp;gt;&#39;;&lt;br /&gt;$pass = &#39;&amp;lt;put your password&amp;gt;&#39;;&lt;br /&gt;$folder_id = &#39;&amp;lt;put your folder id&amp;gt;&#39;;&lt;br /&gt;&lt;br /&gt;$data = get_account_info($app_id, $user, $pass);&lt;br /&gt;var_dump($data);&lt;br /&gt;&lt;br /&gt;$data = json_decode($data);&lt;br /&gt;$account_id = $data-&amp;gt;accounts[0]-&amp;gt;accountId;&lt;br /&gt;&lt;br /&gt;$data = get_client_folders($app_id, $user, $pass, $account_id);&lt;br /&gt;var_dump($data);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function set_headers($app_id, $user, $pass) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $headers = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;Accept: application/json&#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;Content-Type: application/json&#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;Api-Version: 2.0&#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;Api-AppId: &#39; . $app_id,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;Api-Username: &#39; . $user,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;Api-Password: &#39; . $pass&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $headers;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;
function get_account_info($app_id, $user, $pass) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $headers = set_headers($app_id, $user, $pass);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init(&quot;https://app.icontact.com/icp/a&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (curl_errno($ch)) echo curl_error($ch);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_close($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $json;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function get_client_folders($app_id, $user, $pass, $account_id) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $headers = set_headers($app_id, $user, $pass);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init(&quot;https://app.icontact.com/icp/a/$account_id/c/&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (curl_errno($ch)) echo curl_error($ch);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_close($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $json;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;
function add_contact($app_id, $user, $pass, $account_id, $folder_id, $email, $fname, $lname, $status=&#39;normal&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $headers = set_headers($app_id, $user, $pass);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;contact&#39; =&amp;gt; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;email&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; $email,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;firstName&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; $fname,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;lastName&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; $lname,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;status&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; $status&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data = json_encode($data);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init(&quot;https://app.icontact.com/icp/a/$account_id/c/$folder_id/contacts/&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_POSTFIELDS, $data);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (curl_errno($ch)) echo curl_error($ch);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_close($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $json;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;
function get_contact_info($app_id, $user, $pass, $account_id, $folder_id, $email) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $headers = set_headers($app_id, $user, $pass);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init(&quot;https://app.icontact.com/icp/a/$account_id/c/$folder_id/contacts/?email=&quot;.urlencode($email));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (curl_errno($ch)) echo curl_error($ch);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_close($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $json;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function get_contact_info_by_id($app_id, $user, $pass, $account_id, $folder_id, $contact_id) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $headers = set_headers($app_id, $user, $pass);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init(&quot;https://app.icontact.com/icp/a/$account_id/c/$folder_id/contacts/?contactId=&quot;.urlencode($contact_id));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (curl_errno($ch)) echo curl_error($ch);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_close($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $json;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;
function list_contacts($app_id, $user, $pass, $account_id, $folder_id) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $headers = set_headers($app_id, $user, $pass);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init(&quot;https://app.icontact.com/icp/a/$account_id/c/$folder_id/contacts/&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (curl_errno($ch)) echo curl_error($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (curl_errno($ch)) echo curl_error($ch);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_close($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $json;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function subscribe($app_id, $user, $pass, $account_id, $folder_id, $email, $list_id) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = get_contact_info($app_id, $user, $pass, $account_id, $folder_id, $email);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $obj = json_decode($json);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $contact_id = $obj-&amp;gt;contacts[0]-&amp;gt;contactId;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $headers = set_headers($app_id, $user, $pass);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;subscription&#39; =&amp;gt; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;contactId&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; $contact_id,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;listId&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; $list_id,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;status&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;normal&#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data = json_encode($data);&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init(&quot;https://app.icontact.com/icp/a/$account_id/c/$folder_id/subscriptions/&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_POSTFIELDS, $data);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (curl_errno($ch)) echo curl_error($ch);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_close($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $json;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function unsubscribe($app_id, $user, $pass, $account_id, $folder_id, $email, $list_id) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = get_contact_info($app_id, $user, $pass, $account_id, $folder_id, $email);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $obj = json_decode($json);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $contact_id = $obj-&amp;gt;contacts[0]-&amp;gt;contactId;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $headers = set_headers($app_id, $user, $pass);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;subscription&#39; =&amp;gt; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;contactId&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; $contact_id,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;listId&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; $list_id,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;status&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;unsubscribed&#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $data = json_encode($data);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init(&quot;https://app.icontact.com/icp/a/$account_id/c/$folder_id/subscriptions/&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_POSTFIELDS, $data);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (curl_errno($ch)) echo curl_error($ch);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_close($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $json;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function list_subscribers($app_id, $user, $pass, $account_id, $folder_id) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $headers = set_headers($app_id, $user, $pass);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init(&quot;https://app.icontact.com/icp/a/$account_id/c/$folder_id/subscriptions/&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $json = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (curl_errno($ch)) echo curl_error($ch);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_close($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $json;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;?&amp;gt; 
&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/2760804435197808842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2012/07/icontact-api-integration-on-php.html#comment-form' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/2760804435197808842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/2760804435197808842'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2012/07/icontact-api-integration-on-php.html' title='iContact API Integration on PHP'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-4750783515405488568</id><published>2012-07-12T15:15:00.001+08:00</published><updated>2014-02-18T09:17:56.404+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="api"/><category scheme="http://www.blogger.com/atom/ns#" term="callback"/><category scheme="http://www.blogger.com/atom/ns#" term="curl"/><category scheme="http://www.blogger.com/atom/ns#" term="freshbooks"/><category scheme="http://www.blogger.com/atom/ns#" term="integration"/><category scheme="http://www.blogger.com/atom/ns#" term="oauth"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="secret"/><category scheme="http://www.blogger.com/atom/ns#" term="token"/><title type='text'>Freshbooks API Integration on PHP</title><content type='html'>This post will teach you how to integrate your website with Freshbooks API. There is actually two ways of integrating with Freshbooks, one is via OAuth and the other one is Token-Based method.&lt;br /&gt;
&lt;br /&gt;
For the Token-Based method, this is very simple. You only need to compose an XML request, use your API url and Token from Freshbooks - &lt;a href=&quot;http://developers.freshbooks.com/&quot;&gt;http://developers.freshbooks.com&lt;/a&gt;, then use curl to execute the request. You can check out below on how I do it by calling create client and list clients request. &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$apiurl = &#39;https://sample.freshbooks.com/api/2.1/xml-in&#39;;&lt;br /&gt;
$token = &#39;&amp;lt;your token here&amp;gt;&#39;;&lt;br /&gt;
&lt;br /&gt;
create_client($apiurl, $token);&lt;br /&gt;
list_clients($apiurl, $token);&lt;br /&gt;
&lt;br /&gt;
function create_client($apiurl=&#39;&#39;, $token=&#39;&#39;) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $xmldata = &quot;&amp;lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;utf-8\&quot;?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;request method=\&quot;client.create\&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;client&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;first_name&amp;gt;Jane&amp;lt;/first_name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;last_name&amp;gt;Doe&amp;lt;/last_name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;organization&amp;gt;ABC Corp5&amp;lt;/organization&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;email&amp;gt;janedoe@freshbooks.com&amp;lt;/email&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/client&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/request&amp;gt;&quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = xml_request($apiurl, $token, $xmldata);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_dump($output);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function list_clients($apiurl=&#39;&#39;, $token=&#39;&#39;) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $xmldata = &quot;&amp;lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;utf-8\&quot;?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;request method=\&quot;client.list\&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;folder&amp;gt;active&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/request&amp;gt;&quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = xml_request($apiurl, $token, $xmldata);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_dump($output);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function xml_request($apiurl=&#39;&#39;, $token=&#39;&#39;, $xmldata=&#39;&#39;) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = &#39;&#39;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system(&quot;curl -u $token:X $apiurl -d &#39;$xmldata&#39;&quot;, $output);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $output;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
For the OAuth method, this is pretty much complex than the Token-Based method. Please see below on the implementation I did. I also use plaintext signature method, the same method I used on my previous post - &lt;a href=&quot;http://paulgonzaga.blogspot.com/2012/07/dropbox-oauth-integration-on-php.html&quot; target=&quot;_blank&quot;&gt;Dropbox OAuth API Integration on PHP&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The first and important thing we need to have is the App key and App secret which we will use for authentication. I believed you will need an approval from Freshbooks to be able to get this information.&lt;br /&gt;
&lt;br /&gt;
Once we have these credentials, we are now ready to start the coding part.&lt;br /&gt;
&lt;br /&gt;
To start with, since we will be posting request to API url, I created a function in doing post request. We will be using this for request token and access token process.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
function post_request($url=&#39;&#39;, $param=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_URL, $url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_VERBOSE, 1);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // disable ssl verification&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_POST, 1);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // submit post request parameters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_POSTFIELDS, $param);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // getting response from server&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $output;&lt;br /&gt;}&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we can start requesting for a token. On this request, we need the callback url for freshbooks to redirect after the authorization was made. Once we get the token, we will submit it to authorization url for users to authorize our application.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$key = &#39;&amp;lt;your oauth key here&amp;gt;&#39;;&lt;br /&gt;
$secret = &#39;&amp;lt;your oauth secret here&amp;gt;&#39;;&lt;br /&gt;
&lt;br /&gt;
// call request token here and pass the App key and App secret &lt;br /&gt;
request_token($key, $secret); &lt;br /&gt;
&lt;br /&gt;
function request_token($key=&#39;&#39;, $secret=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $timestamp = time();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $nonce = md5(time());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $key = $this-&amp;gt;data[&#39;key&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $secret = $this-&amp;gt;data[&#39;secret&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $sig = $secret.&quot;%26&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $method = &quot;PLAINTEXT&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $callback = &quot;http://&quot;.$_SERVER[&#39;HTTP_HOST&#39;].$_SERVER[&#39;REQUEST_URI&#39;]; // put your callback url&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://$key.freshbooks.com/oauth/oauth_request.php&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;oauth_consumer_key=$key&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature_method=$method&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature=$sig&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_timestamp=$timestamp&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_nonce=$nonce&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_version=1.0&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_callback=$callback&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = $this-&amp;gt;post_request($url, $param);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // parse the output&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parse_str($output, $token);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // save to session&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;oauth_token&#39;] = $token[&#39;oauth_token&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;token_secret&#39;] = $token[&#39;oauth_token_secret&#39;];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // redirect to authorize url&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; authorize($key);&lt;br /&gt;}
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
After getting a token from request token url, we can redirect the users to authorize url with the oauth token we get from request token.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
function authorize($key=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $oauth_token = $_SESSION[&#39;oauth_token&#39;];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://$key.freshbooks.com/oauth/oauth_authorize.php&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;oauth_token=$oauth_token&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; header(&quot;Location: $url?$param&quot;);&lt;br /&gt;}
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the user allow the application to access the users information, Freshbooks will redirect the users to the callback url we put in our request token function. The callback url should be our access token function to get the access token that we can use moving forward.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$key = &#39;&amp;lt;your oauth key here&amp;gt;&#39;;&lt;br /&gt;$secret = &#39;&amp;lt;your oauth secret here&amp;gt;&#39;;&lt;br /&gt;
&lt;br /&gt;
// call access token request passing the App key and App secret parameters&lt;br /&gt;
access_token($key, $secret);&lt;br /&gt;
&lt;br /&gt;
function access_token($key=&#39;&#39;, $secret=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $oauth_token = ($_GET[&#39;oauth_token&#39;]) ? $_GET[&#39;oauth_token&#39;] : $_SESSION[&#39;oauth_token&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $oauth_verifier = $_GET[&#39;oauth_verifier&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $token_secret = $_SESSION[&#39;token_secret&#39;];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $timestamp = time();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $nonce = md5(time());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $sig = $secret.&quot;%26&quot;.$token_secret;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $method = &quot;PLAINTEXT&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://$key.freshbooks.com/oauth/oauth_access.php&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;oauth_consumer_key=$key&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_token=$oauth_token&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature_method=$method&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature=$sig&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_timestamp=$timestamp&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_nonce=$nonce&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_version=1.0&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_verifier=$oauth_verifier&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = post_request($url, $param);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // parse the output&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parse_str($output, $token);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // save to session&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;oauth_token&#39;] = $token[&#39;oauth_token&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;token_secret&#39;] = $token[&#39;oauth_token_secret&#39;];&lt;br /&gt;}
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
We need to save the oauth token and oauth token secret for api call. Please watch out for my next post, I&#39;ll be posting on how to do the API call using OAuth method. Check out below script for the full implementation of the freshbooks authentication.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;?php&lt;br /&gt;&lt;br /&gt;session_start();&lt;br /&gt;&lt;br /&gt;$key = &#39;&amp;lt;your oauth key here&amp;gt;&#39;;&lt;br /&gt;$secret = &#39;&amp;lt;your oauth secret here&amp;gt;&#39;;&lt;br /&gt;
&lt;br /&gt;
// from callback&lt;br /&gt;$oauth_token = $_GET[&#39;oauth_token&#39;];&lt;br /&gt;if ($oauth_token) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; access_token($key, $secret);&lt;br /&gt;} else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request_token($key, $secret);&lt;br /&gt;}&lt;br /&gt;
&lt;br /&gt;
function request_token($key=&#39;&#39;, $secret=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $timestamp = time();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $nonce = md5(time());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $key = $this-&amp;gt;data[&#39;key&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $secret = $this-&amp;gt;data[&#39;secret&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $sig = $secret.&quot;%26&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $method = &quot;PLAINTEXT&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $callback = &quot;http://&quot;.$_SERVER[&#39;HTTP_HOST&#39;].$_SERVER[&#39;REQUEST_URI&#39;]; // put your callback url&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://$key.freshbooks.com/oauth/oauth_request.php&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;oauth_consumer_key=$key&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature_method=$method&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature=$sig&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_timestamp=$timestamp&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_nonce=$nonce&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_version=1.0&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_callback=$callback&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = $this-&amp;gt;post_request($url, $param);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // parse the output&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parse_str($output, $token);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // save to session&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;oauth_token&#39;] = $token[&#39;oauth_token&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;token_secret&#39;] = $token[&#39;oauth_token_secret&#39;];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; authorize($key);&lt;br /&gt;}&lt;br /&gt;
&lt;br /&gt;
function authorize($key=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $oauth_token = $_SESSION[&#39;oauth_token&#39;];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://$key.freshbooks.com/oauth/oauth_authorize.php&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;oauth_token=$oauth_token&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; header(&quot;Location: $url?$param&quot;);&lt;br /&gt;}&lt;br /&gt;
&lt;br /&gt;
function access_token($key=&#39;&#39;, $secret=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $oauth_token = ($_GET[&#39;oauth_token&#39;]) ? $_GET[&#39;oauth_token&#39;] : $_SESSION[&#39;oauth_token&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $oauth_verifier = $_GET[&#39;oauth_verifier&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $token_secret = $_SESSION[&#39;token_secret&#39;];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $timestamp = time();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $nonce = md5(time());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $sig = $secret.&quot;%26&quot;.$token_secret;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $method = &quot;PLAINTEXT&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://$key.freshbooks.com/oauth/oauth_access.php&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;oauth_consumer_key=$key&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_token=$oauth_token&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature_method=$method&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature=$sig&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_timestamp=$timestamp&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_nonce=$nonce&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_version=1.0&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_verifier=$oauth_verifier&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = post_request($url, $param);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // parse the output&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parse_str($output, $token);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // save to session&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;oauth_token&#39;] = $token[&#39;oauth_token&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;token_secret&#39;] = $token[&#39;oauth_token_secret&#39;];&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_dump($_SESSION);&lt;br /&gt;}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;
&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/4750783515405488568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2012/07/freshbooks-api-integration-on-php.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/4750783515405488568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/4750783515405488568'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2012/07/freshbooks-api-integration-on-php.html' title='Freshbooks API Integration on PHP'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-6348118900321900316</id><published>2012-07-07T17:44:00.000+08:00</published><updated>2012-07-12T14:02:13.226+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="api"/><category scheme="http://www.blogger.com/atom/ns#" term="curl"/><category scheme="http://www.blogger.com/atom/ns#" term="dropbox"/><category scheme="http://www.blogger.com/atom/ns#" term="integration"/><category scheme="http://www.blogger.com/atom/ns#" term="oauth"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="signature"/><category scheme="http://www.blogger.com/atom/ns#" term="token"/><title type='text'>Dropbox OAuth API Integration on PHP</title><content type='html'>This post will teach you how to integrate with Dropbox OAuth using PHP platform. Please take note that I&#39;m not using any library to perform this integration nor special coding or whatsoever.&lt;br /&gt;
&lt;br /&gt;
This is basically built from scratch which I want to share with you all, who wish to integrate with Dropbox.&lt;br /&gt;
&lt;br /&gt;
To start with, you need an API credentials which you can get by logging in to your Dropbox account and create an app on this url - &lt;a href=&quot;https://www.dropbox.com/developers/apps&quot;&gt;https://www.dropbox.com/developers/apps&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
We need the credentials below to proceed:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;App key&lt;/li&gt;
&lt;li&gt;App secret &lt;/li&gt;
&lt;/ul&gt;
We also need to understand the 3 url&#39;s that we need to access to complete the authentication process as listed below.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Request Token - &lt;a href=&quot;https://api.dropbox.com/1/oauth/request_token&quot;&gt;https://api.dropbox.com/1/oauth/request_token&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Authorization - &lt;a href=&quot;https://www.dropbox.com/1/oauth/authorize&quot;&gt;https://www.dropbox.com/1/oauth/authorize&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Access Token - &lt;a href=&quot;https://api.dropbox.com/1/oauth/access_token&quot;&gt;https://api.dropbox.com/1/oauth/access_token&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
The request token url will be use to get a token which will be use to authorize your app to access users information in their behalf.&lt;br /&gt;
&lt;br /&gt;
The authorization url will be the page for users to allow our application to access the users credential.&lt;br /&gt;
&lt;br /&gt;
The access token url will be use to get an access token which will be use to access users credentials in their behalf.&lt;br /&gt;
&lt;br /&gt;
Another thing that we need to understand is how to create signature. We need this in performing oauth request.&lt;br /&gt;
&lt;br /&gt;
For the sake of this post, we will use the PLAINTEXT signature method, which is the simplest signature method.&lt;br /&gt;
&lt;br /&gt;
Once we have the credentials and the api url&#39;s, we are now ready to start by
just following the simple steps below.&lt;br /&gt;
&lt;br /&gt;
1. Lets request for a token from the request token url - https://api.dropbox.com/1/oauth/request_token. Since we are using plaintext signature method, the signature will be your app secret plus &quot;%26&quot;. Please see below.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$key = &#39;&amp;lt;your app key&amp;gt;&#39;;&lt;br /&gt;
$secret = &#39;&amp;lt;your app secret&amp;gt;&#39;;&lt;br /&gt;
$timestamp = time();$nonce = md5(time());&lt;br /&gt;
$sig = $secret.&quot;%26&quot;;&lt;br /&gt;
$method = &quot;PLAINTEXT&quot;;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Once we have all the parameters, lets compose the post request.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$url = &quot;https://api.dropbox.com/1/oauth/request_token&quot;;&lt;br /&gt;
$param = &quot;oauth_consumer_key=$key&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature_method=$method&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature=$sig&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_timestamp=$timestamp&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_nonce=$nonce&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_version=1.0&quot;;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Execute post request using curl, which is the basic command in performing post request.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$ch = curl_init();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
curl_setopt($ch, CURLOPT_URL, $url);&lt;br /&gt;
curl_setopt($ch, CURLOPT_VERBOSE, 1);&lt;br /&gt;&lt;br /&gt;
// disable ssl verification&lt;br /&gt;
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);&lt;br /&gt;
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);&lt;br /&gt;&lt;br /&gt;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;
curl_setopt($ch, CURLOPT_POST, 1);&lt;br /&gt;&lt;br /&gt;
// submit post request parameters&lt;br /&gt;
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);&lt;br /&gt;&lt;br /&gt;
// getting response from server&lt;br /&gt;
$output = curl_exec($ch);
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Parse the output and you will get the &quot;oauth_token&quot; and &quot;oauth_token_secret&quot; below which will be use to perform authorization. You can save these information in your session so that you will retrieve it later when performing access token.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
// parse the output&lt;br /&gt;
parse_str($output, $token);&lt;br /&gt;
&lt;br /&gt;
// save to session&lt;br /&gt;$_SESSION[&#39;oauth_token&#39;] = $token[&#39;oauth_token&#39;];&lt;br /&gt;
$_SESSION[&#39;token_secret&#39;] = $token[&#39;oauth_token_secret&#39;];
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
5. From the step #4, we only need the &quot;oauth_token&quot; to request for authorization. For this process, we need to define our callback url in which Dropbox will redirect the users after allowing the access.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$oauth_token = $_SESSION[&#39;oauth_token&#39;]; &lt;br /&gt;
$callback = &#39;&amp;lt;your callback url&amp;gt;&#39;;&lt;br /&gt;
&lt;br /&gt;
$url = &quot;https://www.dropbox.com/1/oauth/authorize&quot;;&lt;br /&gt;
$param = &quot;oauth_token=$oauth_token&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_callback=$callback&quot;;&lt;br /&gt;
&lt;br /&gt;
header(&quot;Location: $url?$param&quot;);
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
6. After the user allows our application, Dropbox will redirect the user to our callback url we specify on step #5. We need to submit post request to access token url with the parameter &quot;oauth_token&quot; from step #4. This will also require signature, the same way we did on request token process, but this time with extra parameter &quot;oauth_token_secret&quot; from step #4. &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$oauth_token = $_SESSION[&#39;oauth_token&#39;];&lt;br /&gt;
$token_secret = $_SESSION[&#39;token_secret&#39;];&lt;br /&gt;
&lt;br /&gt;
$key = &#39;&amp;lt;your app key&amp;gt;&#39;;&lt;br /&gt;
$secret = &#39;&amp;lt;your app secret&amp;gt;&#39;;&lt;br /&gt;
$timestamp = time();$nonce = md5(time());&lt;br /&gt;
$sig = $secret.&quot;%26&quot;.$token_secret;&lt;br /&gt;
$method = &quot;PLAINTEXT&quot;;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Lets compose the url and parameter with &quot;oauth_token&quot; as part of the request.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$url = &quot;https://api.dropbox.com/1/oauth/access_token&quot;;&lt;br /&gt;
$param = &quot;oauth_consumer_key=$key&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_token=$oauth_token&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature_method=$method&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature=$sig&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_timestamp=$timestamp&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_nonce=$nonce&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_version=1.0&quot;;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
8. Execute the post request using curl.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$ch = curl_init();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
curl_setopt($ch, CURLOPT_URL, $url);&lt;br /&gt;
curl_setopt($ch, CURLOPT_VERBOSE, 1);&lt;br /&gt;
&lt;br /&gt;
// disable ssl verification&lt;br /&gt;
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);&lt;br /&gt;
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);&lt;br /&gt;
&lt;br /&gt;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;
curl_setopt($ch, CURLOPT_POST, 1);&lt;br /&gt;
&lt;br /&gt;
// submit post request parameters&lt;br /&gt;
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);&lt;br /&gt;
&lt;br /&gt;
// getting response from server&lt;br /&gt;
$output = curl_exec($ch);
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
9. Parse the output and we will get an access token which we will use to do the api request. You can save these information in your database so that you won&#39;t need to request for authorization when doing api request.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
// parse the output&lt;br /&gt;
parse_str($output, $token);&lt;br /&gt;
&lt;br /&gt;
// save to session&lt;br /&gt;
$_SESSION[&#39;oauth_token&#39;] = $token[&#39;oauth_token&#39;];&lt;br /&gt;

$_SESSION[&#39;token_secret&#39;] = $token[&#39;oauth_token_secret&#39;];
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
You can try the full script below I made with a live API account and a basic API request. I optimized the script as well for better coding.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;?php&lt;br /&gt;&lt;br /&gt;session_start();&lt;br /&gt;&lt;br /&gt;$key = &#39;vh096l7q9m5m8tv&#39;; // put here your app key&lt;br /&gt;$secret = &#39;omri1uakcak8zqz&#39;; // put here your app secret&lt;br /&gt;&lt;br /&gt;// from callback&lt;br /&gt;$oauth_token = $_GET[&#39;oauth_token&#39;];&lt;br /&gt;if ($oauth_token) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; access_token($key, $secret);&lt;br /&gt;} else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request_token($key, $secret);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function request_token($key=&#39;&#39;, $secret=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $timestamp = time();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $nonce = md5(time());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $sig = $secret.&quot;%26&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $method = &quot;PLAINTEXT&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://api.dropbox.com/1/oauth/request_token&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;oauth_consumer_key=$key&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature_method=$method&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature=$sig&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_timestamp=$timestamp&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_nonce=$nonce&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_version=1.0&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = post_request($url, $param);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // parse the output&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parse_str($output, $token);&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // save to session&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;oauth_token&#39;] = $token[&#39;oauth_token&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;token_secret&#39;] = $token[&#39;oauth_token_secret&#39;];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; authorize();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function authorize() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $oauth_token = $_SESSION[&#39;oauth_token&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $callback = &quot;http://&quot;.$_SERVER[&#39;HTTP_HOST&#39;].$_SERVER[&#39;REQUEST_URI&#39;]; // put your callback url&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://www.dropbox.com/1/oauth/authorize&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;oauth_token=$oauth_token&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_callback=$callback&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; header(&quot;Location: $url?$param&quot;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function access_token($key=&#39;&#39;, $secret=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $oauth_token = $_SESSION[&#39;oauth_token&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $token_secret = $_SESSION[&#39;token_secret&#39;];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $timestamp = time();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $nonce = md5(time());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $sig = $secret.&quot;%26&quot;.$token_secret;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $method = &quot;PLAINTEXT&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://api.dropbox.com/1/oauth/access_token&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;oauth_consumer_key=$key&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_token=$oauth_token&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature_method=$method&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature=$sig&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_timestamp=$timestamp&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_nonce=$nonce&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_version=1.0&quot;;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = post_request($url, $param);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // parse the output&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parse_str($output, $token);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // save to session&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;oauth_token&#39;] = $token[&#39;oauth_token&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $_SESSION[&#39;token_secret&#39;] = $token[&#39;oauth_token_secret&#39;];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; folders($key, $secret);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function folders($key=&#39;&#39;, $secret=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $oauth_token = $_SESSION[&#39;oauth_token&#39;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $token_secret = $_SESSION[&#39;token_secret&#39;];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $timestamp = time();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $nonce = md5(time());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $sig = $secret.&quot;%26&quot;.$token_secret;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $method = &quot;PLAINTEXT&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://api.dropbox.com/1/metadata/dropbox&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = &quot;oauth_consumer_key=$key&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_token=$oauth_token&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature_method=$method&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_signature=$sig&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_timestamp=$timestamp&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_nonce=$nonce&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&amp;amp;oauth_version=1.0&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = file_get_contents($url.&quot;?&quot;.$param);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $jsondata = json_decode($output);&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ($jsondata-&amp;gt;contents as $contents) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $contents-&amp;gt;path.&quot;&amp;lt;br/&amp;gt;&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function post_request($url=&#39;&#39;, $param=&#39;&#39;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ch = curl_init();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_URL, $url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_VERBOSE, 1);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // disable ssl verification&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_POST, 1);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // submit post request parameters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curl_setopt($ch, CURLOPT_POSTFIELDS, $param);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // getting response from server&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $output;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;?&amp;gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/6348118900321900316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2012/07/dropbox-oauth-integration-on-php.html#comment-form' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/6348118900321900316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/6348118900321900316'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2012/07/dropbox-oauth-integration-on-php.html' title='Dropbox OAuth API Integration on PHP'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-8475731496883076856</id><published>2012-07-01T19:45:00.000+08:00</published><updated>2012-07-01T19:56:59.748+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="curl"/><category scheme="http://www.blogger.com/atom/ns#" term="integration"/><category scheme="http://www.blogger.com/atom/ns#" term="payment"/><category scheme="http://www.blogger.com/atom/ns#" term="paypal"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>Integration with Paypal on PHP</title><content type='html'>This post will teach you how to to integrate your website with paypal and hope I was able to guide you well.&lt;br /&gt;
&lt;br /&gt;
To start with, you need to apply for a Paypal account. If you just want a test account, you can register for a sandbox account - &lt;a href=&quot;http://www.sandbox.paypal.com/&quot;&gt;http://www.sandbox.paypal.com&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
We need the following account details below:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Username&lt;/li&gt;
&lt;li&gt;Password&lt;/li&gt;
&lt;li&gt;API Signature&lt;/li&gt;
&lt;/ul&gt;
Once you have all the details, we can now do the coding part. Aside from account details, you also need to know the endpoint url and the paypal callback url. Please see details below.&lt;br /&gt;
&lt;br /&gt;
Live:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Endpoint - https://api-3t.paypal.com/nvp&lt;/li&gt;
&lt;li&gt;Callback - https://www.paypal.com/webscr&amp;amp;cmd=_express-checkout&amp;amp;token=&lt;/li&gt;
&lt;/ul&gt;
Sandbox:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Endpoint - https://api-3t.sandbox.paypal.com/nvp&lt;/li&gt;
&lt;li&gt;Callback - https://www.sandbox.paypal.com/webscr&amp;amp;cmd=_express-checkout&amp;amp;token= &lt;/li&gt;
&lt;/ul&gt;
Just to get us going, please see below code snippet for checking the environment and initiate the details.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
// set up your environment - live or sandbox&lt;br /&gt;$live = &quot;true&quot;;&lt;br /&gt;&lt;br /&gt;if ($live == &quot;true&quot;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // live account details&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $username = &#39;paypal live username&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $password = &#39;paypal live password&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $signature = &#39;paypal live api signature&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $endpoint = &quot;https://api-3t.paypal.com/nvp&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://www.paypal.com/webscr&amp;amp;cmd=_express-checkout&amp;amp;token=&quot;;&lt;br /&gt;} else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // sandbox account details&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $username = &#39;paypal sandbox username&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $password = &#39;paypal sandbox password&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $signature = &#39;paypal sandbox api signature&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $endpoint = &quot;https://api-3t.sandbox.paypal.com/nvp&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://www.sandbox.paypal.com/webscr&amp;amp;cmd=_express-checkout&amp;amp;token=&quot;;&lt;br /&gt;} 
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, we need the details of transaction to be submitted to paypal api. For the benefit of this post, please see details below.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$itemamt = &#39;40.00&#39;; // item amount&lt;br /&gt;$paymentamt = &#39;50.00&#39;; // total amount&lt;br /&gt;$taxamt = &#39;10.00&#39;; // tax amount&lt;br /&gt;$currencyid = &#39;CAD&#39;; // &#39;GBP&#39;, &#39;EUR&#39;, &#39;JPY&#39;, &#39;USD&#39;, &#39;AUD&#39;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Please make sure that $paymentamt = $itemamt + $taxamt&lt;br /&gt;
&lt;br /&gt;
Also, we need the details below to perform payment transaction.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$startdate = urlencode(&#39;2012-07-01T18:10:40+08:00&#39;); // payment start date&lt;br /&gt;
$billingfreq = &#39;1&#39; // number of months interval;&lt;br /&gt;
$paymenttype = &#39;Authorization&#39;; // or &#39;Sale&#39; or &#39;Order&#39;&lt;br /&gt;
$description = urlencode(&#39;sample description&#39;); // description of transaction
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
You also need to define your callback url. Please see below.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$returnurl = &#39;http://www.domain.com/callback/return.html&#39;; // callback url for successful transaction&lt;br /&gt;
$cancelurl = &#39;http://www.domain.com/callback/cancel.html&#39;; // callback url for failed transaction 
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
After defining the parameters, compose the query string. Please see below.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$reqStr = &quot;METHOD=SetExpressCheckout&amp;amp;VERSION=65.2&amp;amp;PWD=$password&amp;amp;USER=$username&amp;amp;SIGNATURE=$signature&amp;amp;RETURNURL=$returnurl&amp;amp;CANCELURL=$cancelurl&amp;amp;REQCONFIRMSHIPPING=0&amp;amp;NOSHIPPING=1&amp;amp;PAYMENTREQUEST_0_CURRENCYCODE=$currencyid&amp;amp;PAYMENTREQUEST_0_AMT=$paymentamt&amp;amp;PAYMENTREQUEST_0_ITEMAMT=$itemamt&amp;amp;PAYMENTREQUEST_0_TAXAMT=$taxamt&amp;amp;PAYMENTREQUEST_0_DESC=$description&amp;amp;PAYMENTREQUEST_0_PAYMENTACTION=$paymenttype&amp;amp;L_PAYMENTREQUEST_0_ITEMCATEGORY0=Digital&amp;amp;L_PAYMENTREQUEST_0_NAME0=$description&amp;amp;L_PAYMENTREQUEST_0_QTY0=1&amp;amp;L_PAYMENTREQUEST_0_AMT0=$itemamt&amp;amp;L_PAYMENTREQUEST_0_DESC0=$description&amp;amp;L_BILLINGAGREEMENTDESCRIPTION0=$description&amp;amp;L_BILLINGTYPE0=RecurringPayments&amp;amp;MAXFAILEDPAYMENTS=&#39;true&#39;&quot;;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Setup the curl as below.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
// set the curl parameters.&lt;br /&gt;$ch = curl_init();&lt;br /&gt;curl_setopt($ch, CURLOPT_URL, $endpoint);&lt;br /&gt;curl_setopt($ch, CURLOPT_VERBOSE, 1);&lt;br /&gt;&lt;br /&gt;// disable ssl verification&lt;br /&gt;curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);&lt;br /&gt;curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);&lt;br /&gt;&lt;br /&gt;// set the method&lt;br /&gt;curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;curl_setopt($ch, CURLOPT_POST, 1);
&lt;br /&gt;
&lt;br /&gt;
// set the post parameters&lt;br /&gt;curl_setopt($ch, CURLOPT_POSTFIELDS, $reqstr);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;// execute curl&lt;br /&gt;$response = curl_exec($ch);&lt;br /&gt;if (!$response) exit(&quot;SetExpressCheckout failed: &quot;.curl_error($ch).&#39;(&#39;.curl_errno($ch).&#39;)&#39;);
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Get and parse the http response.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
// get and parse the response&lt;br /&gt;$arr_response = explode(&quot;&amp;amp;&quot;, $response);&lt;br /&gt;&lt;br /&gt;$http_response = array();&lt;br /&gt;foreach ($arr_response as $key =&amp;gt; $val) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = explode(&quot;=&quot;, $val);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (sizeof($param) &amp;gt; 1) $http_response[$param[0]] = $param[1];&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if ((sizeof($http_response) == 0) || !array_key_exists(&#39;ACK&#39;, $http_response)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(&quot;SetExpressCheckout failed: &quot; . print_r($arr_response, true));&lt;br /&gt;}
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Get the token and pass it to paypal for processing.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
// get the token and pass to paypal for processing&lt;br /&gt;if (strtoupper($http_response[&quot;ACK&quot;]) == &quot;SUCCESS&quot; || strtoupper($httpParsedResponseAr[&quot;ACK&quot;]) == &quot;SUCCESSWITHWARNING&quot;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // redirect to paypal to confirm and process transaction&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $token = urldecode($http_response[&quot;TOKEN&quot;]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $paypalurl .= $token;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (isset($paypalurl)) redirect($paypalurl);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit;&lt;br /&gt;} else&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(&#39;SetExpressCheckout failed: &#39; . print_r($http_response, true));&lt;br /&gt;} 
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
This is all for now. Next post will be processing after Paypal. You can also check out the full script below. Happy coding!!&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;?php&lt;br /&gt;&lt;br /&gt;// set up your environment - live or sandbox&lt;br /&gt;$live = &quot;true&quot;;&lt;br /&gt;&lt;br /&gt;if ($live == &quot;true&quot;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // live account details&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $username = &#39;paypal live username&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $password = &#39;paypal live password&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $signature = &#39;paypal live api signature&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $endpoint = &quot;https://api-3t.paypal.com/nvp&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://www.paypal.com/webscr&amp;amp;cmd=_express-checkout&amp;amp;token=&quot;;&lt;br /&gt;} else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // sandbox account details&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $username = &#39;paypal sandbox username&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $password = &#39;paypal sandbox password&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $signature = &#39;paypal sandbox api signature&#39;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $endpoint = &quot;https://api-3t.sandbox.paypal.com/nvp&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $url = &quot;https://www.sandbox.paypal.com/webscr&amp;amp;cmd=_express-checkout&amp;amp;token=&quot;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$itemamt = &#39;40.00&#39;; // item amount&lt;br /&gt;$paymentamt = &#39;50.00&#39;; // total amount&lt;br /&gt;$taxamt = &#39;10.00&#39;; // tax amount&lt;br /&gt;$currencyid = &#39;CAD&#39;; // or &#39;GBP&#39;, &#39;EUR&#39;, &#39;JPY&#39;, &#39;USD&#39;, &#39;AUD&#39;&lt;br /&gt;&lt;br /&gt;$startdate = urlencode(&#39;2012-07-01T18:10:40+08:00&#39;); // payment start date - 2012-07-01T18:10:40+08:00&lt;br /&gt;$billingfreq = &#39;1&#39; // number of months interval;&lt;br /&gt;$paymenttype = &#39;Authorization&#39;; // or &#39;Sale&#39; or &#39;Order&#39;&lt;br /&gt;$description = urlencode(&#39;sample description&#39;); // description of transaction&lt;br /&gt;&lt;br /&gt;$returnurl = &#39;http://www.domain.com/callback/return.html&#39;; // callback url for successful transaction&lt;br /&gt;$cancelurl = &#39;http://www.domain.com/callback/cancel.html&#39;; // callback url for failed transaction&lt;br /&gt;
&lt;br /&gt;
$reqstr = &quot;METHOD=SetExpressCheckout&amp;amp;VERSION=65.2&amp;amp;PWD=$password&amp;amp;USER=$username&amp;amp;SIGNATURE=$signature&amp;amp;RETURNURL=$returnurl&amp;amp;CANCELURL=$cancelurl&amp;amp;REQCONFIRMSHIPPING=0&amp;amp;NOSHIPPING=1&amp;amp;PAYMENTREQUEST_0_CURRENCYCODE=$currencyid&amp;amp;PAYMENTREQUEST_0_AMT=$paymentamt&amp;amp;PAYMENTREQUEST_0_ITEMAMT=$itemamt&amp;amp;PAYMENTREQUEST_0_TAXAMT=$taxamt&amp;amp;PAYMENTREQUEST_0_DESC=$description&amp;amp;PAYMENTREQUEST_0_PAYMENTACTION=$paymenttype&amp;amp;L_PAYMENTREQUEST_0_ITEMCATEGORY0=Digital&amp;amp;L_PAYMENTREQUEST_0_NAME0=$description&amp;amp;L_PAYMENTREQUEST_0_QTY0=1&amp;amp;L_PAYMENTREQUEST_0_AMT0=$itemamt&amp;amp;L_PAYMENTREQUEST_0_DESC0=$description&amp;amp;L_BILLINGAGREEMENTDESCRIPTION0=$description&amp;amp;L_BILLINGTYPE0=RecurringPayments&amp;amp;MAXFAILEDPAYMENTS=&#39;true&#39;&quot;;&lt;br /&gt;&lt;br /&gt;// set the curl parameters.&lt;br /&gt;$ch = curl_init();&lt;br /&gt;curl_setopt($ch, CURLOPT_URL, $endpoint);&lt;br /&gt;curl_setopt($ch, CURLOPT_VERBOSE, 1);&lt;br /&gt;&lt;br /&gt;// disable ssl verification&lt;br /&gt;curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);&lt;br /&gt;curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);&lt;br /&gt;&lt;br /&gt;// set the method&lt;br /&gt;curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;curl_setopt($ch, CURLOPT_POST, 1);&lt;br /&gt;&lt;br /&gt;// set the post parameters&lt;br /&gt;curl_setopt($ch, CURLOPT_POSTFIELDS, $reqstr);&lt;br /&gt;&lt;br /&gt;// execute curl&lt;br /&gt;$response = curl_exec($ch);&lt;br /&gt;&lt;br /&gt;if (!$response) exit(&quot;SetExpressCheckout failed: &quot;.curl_error($ch).&#39;(&#39;.curl_errno($ch).&#39;)&#39;);&lt;br /&gt;&lt;br /&gt;// get and parse the response&lt;br /&gt;$arr_response = explode(&quot;&amp;amp;&quot;, $response);&lt;br /&gt;&lt;br /&gt;
$http_response = array();&lt;br /&gt;foreach ($arr_response as $key =&amp;gt; $val) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $param = explode(&quot;=&quot;, $val);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (sizeof($param) &amp;gt; 1) $http_response[$param[0]] = $param[1];&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if ((sizeof($http_response) == 0) || !array_key_exists(&#39;ACK&#39;, $http_response)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(&quot;SetExpressCheckout failed: &quot; . print_r($arr_response, true));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// get the token and pass to paypal for processing&lt;br /&gt;if (strtoupper($http_response[&quot;ACK&quot;]) == &quot;SUCCESS&quot; || strtoupper($httpParsedResponseAr[&quot;ACK&quot;]) == &quot;SUCCESSWITHWARNING&quot;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // redirect to paypal to confirm and process transaction&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $token = urldecode($http_response[&quot;TOKEN&quot;]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $paypalurl .= $token;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (isset($paypalurl)) redirect($paypalurl);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit;&lt;br /&gt;} else&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(&#39;SetExpressCheckout failed: &#39; . print_r($http_response, true));&lt;br /&gt;}&lt;br /&gt;
&lt;br /&gt;?&amp;gt; 
&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/8475731496883076856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2012/07/integration-with-paypal-using-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/8475731496883076856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/8475731496883076856'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2012/07/integration-with-paypal-using-php.html' title='Integration with Paypal on PHP'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-3256244833235808772</id><published>2012-07-01T16:42:00.002+08:00</published><updated>2012-07-01T16:44:03.613+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="element"/><category scheme="http://www.blogger.com/atom/ns#" term="html"/><category scheme="http://www.blogger.com/atom/ns#" term="index"/><category scheme="http://www.blogger.com/atom/ns#" term="order"/><category scheme="http://www.blogger.com/atom/ns#" term="tab"/><category scheme="http://www.blogger.com/atom/ns#" term="website"/><title type='text'>HTML 101: Setting up tab index in your website</title><content type='html'>Setting up tab index is very useful if you want your text boxes, buttons, and any other elements be set in a specific order.&lt;br /&gt;
&lt;br /&gt;
You can set it by using &quot;tabindex&quot; attribute to all your input elements. Please see sample below.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;input type=&quot;text&quot; value=&quot;&quot; name=&quot;text&quot; tabindex=&quot;1&quot;&amp;gt;&amp;lt;/input&amp;gt;&lt;br /&gt;
&amp;lt;input type=&quot;text&quot; value=&quot;&quot; name=&quot;text&quot; tabindex=&quot;2&quot;&amp;gt;&amp;lt;/input&amp;gt;&lt;br /&gt;
&amp;lt;input type=&quot;submit&quot; value=&quot;submit&quot; name=&quot;text&quot; tabindex=&quot;3&quot;&amp;gt;&amp;lt;/input&amp;gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also disable the tab index of an element by setting the value to &quot;-1&quot;. This is very useful if you have an element that is hide or you set the opacity to be not visible. Please see sample below.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&amp;lt;input type=&quot;text&quot; value=&quot;&quot; name=&quot;text&quot; style=&quot;opacity:0;&quot; tabindex=&quot;1&quot;&amp;gt;&amp;lt;/input&amp;gt;&lt;br /&gt;
&amp;lt;input type=&quot;text&quot; value=&quot;&quot; name=&quot;text&quot; tabindex=&quot;-1&quot;&amp;gt;&amp;lt;/input&amp;gt;&lt;br /&gt;
&amp;lt;input type=&quot;submit&quot; value=&quot;submit&quot; name=&quot;text&quot; tabindex=&quot;2&quot;&amp;gt;&amp;lt;/input&amp;gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Hope this is helpful!</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/3256244833235808772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2012/07/html-101-setting-up-tab-index-in-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/3256244833235808772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/3256244833235808772'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2012/07/html-101-setting-up-tab-index-in-your.html' title='HTML 101: Setting up tab index in your website'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3454509325313497768.post-2222539303118763636</id><published>2012-06-10T14:40:00.000+08:00</published><updated>2012-06-10T14:40:26.497+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="addtype"/><category scheme="http://www.blogger.com/atom/ns#" term="application"/><category scheme="http://www.blogger.com/atom/ns#" term="content"/><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="files"/><category scheme="http://www.blogger.com/atom/ns#" term="force"/><category scheme="http://www.blogger.com/atom/ns#" term="htaccess"/><category scheme="http://www.blogger.com/atom/ns#" term="types"/><title type='text'>Forcing the files to download using htaccess</title><content type='html'>If we want to put a functionality in our website to download files, the best and easiest way to do it is to have it in htaccess.&lt;br /&gt;
&lt;br /&gt;
By default, the files will open up to your current page or open up a tab when clicked via target=&quot;_blank&quot; attribute. Well, that is for me not a good experience, most especially if your website is a downloading site.&lt;br /&gt;
&lt;br /&gt;
You can also try to make a script to force the files to download either via php, asp, or any language, but that will be tedious.&lt;br /&gt;
&lt;br /&gt;
Why do you need to be hard on yourself if you can do it fast and easy.&lt;br /&gt;
&lt;br /&gt;
Please see below syntax that you can put in on your htaccess to force the file to download on your website.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
AddType application/force-download .csv&lt;br /&gt;
AddType application/force-download .xls&lt;br /&gt;
AddType application/force-download .doc&lt;br /&gt;
AddType application/force-download .docx&lt;br /&gt;
AddType application/force-download .avi&lt;br /&gt;
AddType application/force-download .mpg&lt;br /&gt;
AddType application/force-download .mov&lt;br /&gt;
AddType application/force-download .wav&lt;br /&gt;
AddType application/force-download .zip&lt;br /&gt;
AddType application/force-download .mp3&lt;br /&gt;
AddType application/force-download .pdf&lt;br /&gt;
&lt;/code&gt;

&lt;br /&gt;
&lt;br /&gt;
Hope this helps. Thank you for reading such a short post.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.paulgonzaga.com/feeds/2222539303118763636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.paulgonzaga.com/2012/06/forcing-files-to-download-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/2222539303118763636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3454509325313497768/posts/default/2222539303118763636'/><link rel='alternate' type='text/html' href='http://www.paulgonzaga.com/2012/06/forcing-files-to-download-using.html' title='Forcing the files to download using htaccess'/><author><name>Hotshots Point of View</name><uri>http://www.blogger.com/profile/05457792703194047640</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>