2016-02-19 98 views

回答

1

https://dev.twitter.com/rest/reference/get/trends/place

例如请求:

https://api.twitter.com/1.1/trends/place.json?id=1

其中id是WOEID - 的雅虎凡位置

全球地球上的ID:1

印度:23424975

accesing twitterapi需要授权作为标题。

public class ConstantsUtils { 

    public static final String URL_ROOT_TWITTER_API = "https://api.twitter.com"; 
    public static final String URL_SEARCH = URL_ROOT_TWITTER_API + "/1.1/search/tweets.json?q="; 
    public static final String URL_AUTHENTICATION = URL_ROOT_TWITTER_API + "/oauth2/token"; 

    public static final String URL_INDIA_TRENDING ="https://api.twitter.com/1.1/trends/place.json?id=23424977"; 


    public static final String CONSUMER_KEY = "your key"; 
    public static final String CONSUMER_SECRET = "your key"; 


} 

用于获取授权令牌

public static final String TAG = "TwitterUtils"; 

    public static String appAuthentication() { 

     HttpURLConnection httpConnection = null; 
     OutputStream outputStream = null; 
     BufferedReader bufferedReader = null; 
     StringBuilder response = null; 

     try { 
      URL url = new URL(ConstantsUtils.URL_AUTHENTICATION); 
      httpConnection = (HttpURLConnection) url.openConnection(); 
      httpConnection.setRequestMethod("POST"); 
      httpConnection.setDoOutput(true); 
      httpConnection.setDoInput(true); 

      String accessCredential = ConstantsUtils.CONSUMER_KEY + ":" 
        + ConstantsUtils.CONSUMER_SECRET; 
      String authorization = "Basic " 
        + Base64.encodeToString(accessCredential.getBytes(), 
          Base64.NO_WRAP); 
      String param = "grant_type=client_credentials"; 

      httpConnection.addRequestProperty("Authorization", authorization); 
      httpConnection.setRequestProperty("Content-Type", 
        "application/x-www-form-urlencoded;charset=UTF-8"); 
      httpConnection.connect(); 

      outputStream = httpConnection.getOutputStream(); 
      outputStream.write(param.getBytes()); 
      outputStream.flush(); 
      outputStream.close(); 
      // int statusCode = httpConnection.getResponseCode(); 
      // String reason =httpConnection.getResponseMessage(); 

      bufferedReader = new BufferedReader(new InputStreamReader(
        httpConnection.getInputStream())); 
      String line; 
      response = new StringBuilder(); 

      while ((line = bufferedReader.readLine()) != null) { 
       response.append(line); 
      } 

      Log.d(TAG, 
        "POST response code: " 
          + String.valueOf(httpConnection.getResponseCode())); 
      Log.d(TAG, "JSON response: " + response.toString()); 

     } catch (Exception e) { 
      Log.e(TAG, "POST error: " + Log.getStackTraceString(e)); 

     } finally { 
      if (httpConnection != null) { 
       httpConnection.disconnect(); 
      } 
     } 
     return response.toString(); 
    } 

为了得到趋势。

public static String getTimelineForSearchTerm(String twitt_url, 
      Context context) { 
     HttpURLConnection httpConnection = null; 
     BufferedReader bufferedReader = null; 
     StringBuilder response = new StringBuilder(); 

try { 
       URL url = new URL(ConstantsUtils.URL_INDIA_TRENDING); 
       httpConnection = (HttpURLConnection) url.openConnection(); 
       httpConnection.setRequestMethod("GET"); 

       String jsonString = appAuthentication(); 
       JSONObject jsonObjectDocument = new JSONObject(jsonString); 
       String token = jsonObjectDocument.getString("token_type") + " " 
         + jsonObjectDocument.getString("access_token"); 
       httpConnection.setRequestProperty("Authorization", token); 

       httpConnection.setRequestProperty("Authorization", token); 
       httpConnection.setRequestProperty("Content-Type", 
         "application/json"); 
       httpConnection.connect(); 

       bufferedReader = new BufferedReader(new InputStreamReader(
         httpConnection.getInputStream())); 

       String line; 
       while ((line = bufferedReader.readLine()) != null) { 
        response.append(line); 
       } 

       Log.d(TAG, 
         "GET response code: " 
           + String.valueOf(httpConnection 
             .getResponseCode())); 
       Log.d(TAG, "JSON response: " + response.toString()); 

      } catch (Exception e) { 
       Log.e(TAG, "GET error: " + Log.getStackTraceString(e)); 

      } finally { 
       if (httpConnection != null) { 
        httpConnection.disconnect(); 

       } 
      } 
     } 
     return response.toString(); 
    } 

并为获取雅虎WOEID只是通过您的位置的经纬度。

http://where.yahooapis.com/v1/places.q('" 
         + latitude 
         + "," 
         + longitude 
         + "')?appid=yourappid&format=json" 

请仔细阅读有关获取授权请求,并得到授权头

https://dev.twitter.com/oauth

https://dev.twitter.com/oauth/application-only

https://dev.twitter.com/oauth/overview/authorizing-requests

+0

我知道这是网址,但如何调用它?点击它给我这个错误“错误”: [ { “code”:215, “message”:“Bad Authentication data。” } ] –

+0

可以请你解释一下,我可以如何附加访问令牌或其他东西,因为我想在应用程序中调用它我有userid和访问令牌..所以请告诉我如何确切地调用它请 –

+0

嘿我有更新了我的答案。请现在尝试 –