Note that there are some explanatory texts on larger screens.

plurals
  1. POTwitter Application Only Authentication PHP OAuth error
    primarykey
    data
    text
    <p><strong>Please Note</strong></p> <p>A full implementation of a working Twitter Application Only Authentication Oauth PHP library can now be found at the the following github link: <a href="http://jonhurlock.github.io/Twitter-Application-Only-Authentication-OAuth-PHP/" rel="nofollow">Twitter Application Only Authentication OAuth Php</a></p> <hr> <p>I'm trying to get my application to authenticate via Twitter's application only authentication. See documentation at the following URL:</p> <p><a href="https://dev.twitter.com/docs/auth/application-only-auth" rel="nofollow">Twitter Developer Documentation fro Application-only authentication</a></p> <p>I get to step 2 and request a bearer token using the code pasted below. I receive a response that looks like the following:</p> <pre><code>HTTP/1.1 200 OK Date: Tue, 19 Mar 2013 15:13:03 GMT Status: 200 OK X-Frame-Options: DENY ETag: "6b7ec13d0ef1e9d8e0b39bec5266ba7b" X-Runtime: 0.06008 Pragma: no-cache Last-Modified: Tue, 19 Mar 2013 15:13:03 GMT Content-Type: application/json; charset=utf-8 X-Transaction: 55809f2187d74c8e X-MID: 4503f89925628df071cb1d27c3e6953709234b1b Expires: Tue, 31 Mar 1981 05:00:00 GMT Cache-Control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0 Set-Cookie: k=10.37.190.122.1363705983314067; path=/; expires=Tue, 26-Mar-13 15:13:03 GMT; domain=.twitter.com Set-Cookie: _twitter_sess=BAh7CSIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo%250ASGFzaHsABjoKQHVzZWR7ADoMY3NyZl9pZCIlZTI5MjJmNDI5ODY4MzM0NjAz%250AMzkwZTE2NDY5MzdiNGM6D2NyZWF0ZWRfYXRsKwhV8TWDPQE6B2lkIiU2NzEy%250AZjgzOTNjYjc4NjNhYzgwMjU2Mjc1Yzc0ZDYyMw%253D%253D--22b3f64a757c1f9f3c3ae8df9ee434848c43eee8; domain=.twitter.com; path=/; HttpOnly Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 138 Server: tfe Set-Cookie: guest_id=v1%3A136370598331525689; Domain=.twitter.com; Path=/; Expires=Thu, 19-Mar-2015 15:13:03 UTC ‹«V*ÉÏNÍx‹/©,HU²RJJM,J-RÒQJLNN-.ŽKrű‚|sg(«¢Ê(Ô5*ÝÕÃÂGÕÈ­ÌÃxß²(ÐÄÙ(Í4ØÍÔDÕØ¥2+ȳԠԨÊ7«À«$,+ÛÃ"ß35 </code></pre> <p>As you can see the content returned does nto seem to return a json string as described in the documentation</p> <pre><code>HTTP/1.1 200 OK Status: 200 OK Content-Type: application/json; charset=utf-8 ... Content-Encoding: gzip Content-Length: 140 {"token_type":"bearer","access_token":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2FAAAAAAAAAAAAAAAAAAAA%3DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"} </code></pre> <p>As we can see</p> <pre><code>‹«V*ÉÏNÍx‹/©,HU²RJJM,J-RÒQJLNN-.ŽKrű‚|sg(«¢Ê(Ô5*ÝÕÃÂGÕÈ­ÌÃxß²(ÐÄÙ(Í4ØÍÔDÕØ¥2+ȳԠԨÊ7«À«$,+ÛÃ"ß35 </code></pre> <p>is not equal to</p> <pre><code>{"token_type":"bearer","access_token":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2FAAAAAAAAAAAAAAAAAAAA%3DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"} </code></pre> <p>I was wondering if this could be a possible encoding error or if I am fundamentally doing something wrong with the cURL.</p> <p>My code is pasted below, any help would be appreciated:</p> <p>Jon</p> <pre><code>&lt;?php // from https://dev.twitter.com/docs/auth/application-only-auth $consumer_key = 'myconsumerkey'; $consumer_secret = 'myconsumersecret'; // step 1 // step 1.1 - url encode the consumer_key and consumer_secret in accordance with RFC 1738 $encoded_consumer_key = urlencode($consumer_key); $encoded_consumer_secret = urlencode($consumer_secret); // step 1.2 - concatinate encoded consumer, a colon character and the encoded consumer secr et $bearer_token = $encoded_consumer_key.':'.$encoded_consumer_secret; // step 1.3 - base64-encode bearer token $base64_encoded_bearer_token = base64_encode($bearer_token); // step 2 $url = "https://api.twitter.com/oauth2/token"; // url to send data to for authentication $headers = array( "POST /oauth2/token HTTP/1.1", "Host: api.twitter.com", "User-Agent: my Twitter App v.1", //"Authorization: Basic ".$base64_encoded_bearer_token."", "Authorization: Basic ".$base64_encoded_bearer_token."", "Content-Type: application/x-www-form-urlencoded;charset=UTF-8", "Content-Length: 29", "Accept-Encoding: gzip" ); $ch = curl_init(); // setup a curl curl_setopt($ch, CURLOPT_URL,$url); // set url to send to curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // set custom headers curl_setopt($ch, CURLOPT_POST, 1); // send as post curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials"); // post body/fields to be sent $header = curl_setopt($ch, CURLOPT_HEADER, 1); // send custom headers //$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $result = curl_exec($ch); // run the curl curl_close($ch); // stop curling ?&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload