<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Twitter API 1.1 OAuth&amp;nbsp; for geolocated tweets in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/twitter-api-1-1-oauth-nbsp-for-geolocated-tweets/m-p/415698#M38261</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi guys,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am customizing a story map (MapTour Template ) adding a functionality to search geolocated Tweets from the public stream, but new Twitter API require authentication.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I created an account and registered my app to obtain keys and tokens but I always get error 403.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my code for auth&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
function oAuth(kwArgs) {
&amp;nbsp;&amp;nbsp; 
 var CONSUMER_KEY = "xxxxxxxxxxx";
 var CONSUMER_SECRET = "xxxxxxxxxx";
 var token = "xxxxxxxxxx";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var tokenSecret = "xxxxxxxxxx";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
 var access = {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; consumer: {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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: CONSUMER_KEY,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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: CONSUMER_SECRET
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user: {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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: token,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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: tokenSecret
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sig_method: "HMAC-SHA1"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
 };

 kwArgs.headers= { 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Content-Type': 'application/x-www-form-urlencoded',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
 // our request will be made with the HTTP GET verb
&amp;nbsp; 
 return OAuth.sign("GET", kwArgs, access);
&amp;nbsp;&amp;nbsp; 
}
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and here is the code where I request tweets&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
function searchTwitter() {

 var query = dojo.byId("twitter_input").value;
 var geocode = "42.37355,12.88290,1000km";
&amp;nbsp;&amp;nbsp; 

 try {

&amp;nbsp; var results = esri.request(oAuth({
&amp;nbsp;&amp;nbsp; dataType : 'jsonp',
&amp;nbsp;&amp;nbsp; url : "http://api.twitter.com/1.1/search/tweets.json",
&amp;nbsp;&amp;nbsp; content : {
&amp;nbsp;&amp;nbsp;&amp;nbsp; q : query,
&amp;nbsp;&amp;nbsp;&amp;nbsp; geocode : geocode,
&amp;nbsp;&amp;nbsp;&amp;nbsp; count : "100",
&amp;nbsp;&amp;nbsp;&amp;nbsp; include_entities : "false",
&amp;nbsp;&amp;nbsp;&amp;nbsp; result_type : "recent",
&amp;nbsp;&amp;nbsp; },
&amp;nbsp;&amp;nbsp; callbackParamName : "callback",
&amp;nbsp;&amp;nbsp; 
&amp;nbsp; }));
&amp;nbsp; results.then(addTweets);
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 

 } catch (e) {
&amp;nbsp; console.log(e.toString());
 }
}; 
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Somebody help, please!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 26 Feb 2014 09:00:04 GMT</pubDate>
    <dc:creator>NicoleDe_La_Feld</dc:creator>
    <dc:date>2014-02-26T09:00:04Z</dc:date>
    <item>
      <title>Twitter API 1.1 OAuth  for geolocated tweets</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/twitter-api-1-1-oauth-nbsp-for-geolocated-tweets/m-p/415698#M38261</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi guys,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am customizing a story map (MapTour Template ) adding a functionality to search geolocated Tweets from the public stream, but new Twitter API require authentication.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I created an account and registered my app to obtain keys and tokens but I always get error 403.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my code for auth&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
function oAuth(kwArgs) {
&amp;nbsp;&amp;nbsp; 
 var CONSUMER_KEY = "xxxxxxxxxxx";
 var CONSUMER_SECRET = "xxxxxxxxxx";
 var token = "xxxxxxxxxx";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var tokenSecret = "xxxxxxxxxx";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
 var access = {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; consumer: {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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: CONSUMER_KEY,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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: CONSUMER_SECRET
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user: {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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: token,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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: tokenSecret
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sig_method: "HMAC-SHA1"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
 };

 kwArgs.headers= { 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Content-Type': 'application/x-www-form-urlencoded',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
 // our request will be made with the HTTP GET verb
&amp;nbsp; 
 return OAuth.sign("GET", kwArgs, access);
&amp;nbsp;&amp;nbsp; 
}
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and here is the code where I request tweets&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
function searchTwitter() {

 var query = dojo.byId("twitter_input").value;
 var geocode = "42.37355,12.88290,1000km";
&amp;nbsp;&amp;nbsp; 

 try {

&amp;nbsp; var results = esri.request(oAuth({
&amp;nbsp;&amp;nbsp; dataType : 'jsonp',
&amp;nbsp;&amp;nbsp; url : "http://api.twitter.com/1.1/search/tweets.json",
&amp;nbsp;&amp;nbsp; content : {
&amp;nbsp;&amp;nbsp;&amp;nbsp; q : query,
&amp;nbsp;&amp;nbsp;&amp;nbsp; geocode : geocode,
&amp;nbsp;&amp;nbsp;&amp;nbsp; count : "100",
&amp;nbsp;&amp;nbsp;&amp;nbsp; include_entities : "false",
&amp;nbsp;&amp;nbsp;&amp;nbsp; result_type : "recent",
&amp;nbsp;&amp;nbsp; },
&amp;nbsp;&amp;nbsp; callbackParamName : "callback",
&amp;nbsp;&amp;nbsp; 
&amp;nbsp; }));
&amp;nbsp; results.then(addTweets);
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 

 } catch (e) {
&amp;nbsp; console.log(e.toString());
 }
}; 
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Somebody help, please!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Feb 2014 09:00:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/twitter-api-1-1-oauth-nbsp-for-geolocated-tweets/m-p/415698#M38261</guid>
      <dc:creator>NicoleDe_La_Feld</dc:creator>
      <dc:date>2014-02-26T09:00:04Z</dc:date>
    </item>
    <item>
      <title>Re: Twitter API 1.1 OAuth  for geolocated tweets</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/twitter-api-1-1-oauth-nbsp-for-geolocated-tweets/m-p/415699#M38262</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Did you verify that the oAuth headers are being sent in the request?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I wouldn't put the keys in JavaScript since they could easily be discovered. You should put them on a server side script like PHP so they are not exposed.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Feb 2014 02:58:24 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/twitter-api-1-1-oauth-nbsp-for-geolocated-tweets/m-p/415699#M38262</guid>
      <dc:creator>MattDriscoll</dc:creator>
      <dc:date>2014-02-28T02:58:24Z</dc:date>
    </item>
  </channel>
</rss>

