gpt4 book ai didi

android:如何从推特上获取趋势?

转载 作者:太空狗 更新时间:2023-10-29 13:15:09 26 4
gpt4 key购买 nike

我想从 Twitter 获取趋势。任何人都可以帮我解决这个问题。我已经使用 login button 完成登录并获得了 Activity session ,现在问题是如何获得趋势哈希标签。

最佳答案

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

示例请求:

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

其中 id 是 WOEID - Yahoo! Where On Earth 位置 ID

对于全局:1

印度:23424975

访问 twitterapi 需要一个 Authorization 作为 header 。

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";


}

获取授权 token

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"

请阅读获取授权请求和获取授权 header

https://dev.twitter.com/oauth

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

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

关于android:如何从推特上获取趋势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35504566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com