从过去的5天开始,我使用OAuth在android中搜索twitter的最佳工作代码...我发现了很多.但没有一个1完美运行.我怎么得到一些代码.它的工作,但我有一个问题.我喜欢用String callBack ="?"写的东西.这样我的android浏览器会将我的应用程序重定向到我的应用程序,而不是在认证后停留在那里.如果我没有使用CallBack并使用OAuth.OUT_OF_BAND,那么浏览器显示一个密码并且不会将浏览器重定向回我的应用程序.请帮我告诉我我做错了什么.
我的代码在这里
package com.example.tweeter;
import oauth.signpost.OAuth;
import oauth.signpost.OAuthProvider;
import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
import oauth.signpost.commonshttp.CommonsHttpOAuthProvider;
import oauth.signpost.exception.OAuthCommunicationException;
import oauth.signpost.exception.OAuthExpectationFailedException;
import oauth.signpost.exception.OAuthMessageSignerException;
import oauth.signpost.exception.OAuthNotAuthorizedException;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
public class Tweeter extends Activity {
private String CONSUMER_KEY = "CONSUMER_KEY";
private String CONSUMER_SECRET = "CONSUMER_SECRET";
private static final Uri CALLBACK_URI = Uri.parse("PicPuzzle://tkxel");
private String CALLBACK_URL = "PicPuzzle://tkxel";
OAuthProvider provider ;
CommonsHttpOAuthConsumer consumer ;
/** Called when the activity is first created. */
@Override …Run Code Online (Sandbox Code Playgroud) 我想获得一个特定用户的Twitter粉丝/关注者列表,当他们指定了screenname或user.id时.任何人都可以为它提供代码片段吗?谢谢.
我尝试使用Matt Harris的Twitter OAUTH库(https://github.com/themattharris/tmhOAuth)用我的密钥和令牌替换默认数据,但由于某种原因我无法获得有效的响应代码.
我正在测试的url以端口(8888)结束,但我不确定是否与它有关.我正在拖尾PHP日志,没有错误.
$tweet_text = 'Hello world!';
print "Posting...\n";
$result = post_tweet($tweet_text);
print "Response code: " . $result . "\n";
function post_tweet($tweet_text) {
require_once('tmhOAuth.php');
$connection = new tmhOAuth(array(
'consumer_key' => '(hidden)',
'consumer_secret' => '(hidden)',
'user_token' => '(hidden)',
'user_secret' => '(hidden)',
));
$connection->request('POST',
$connection->url('1/statuses/update'),
array('status' => $tweet_text));
return $connection->response['code'];
}
Run Code Online (Sandbox Code Playgroud)
有人有什么想法吗?
非常感谢.
经过大量的试验和错误,我终于设法使用Twitters新API(版本1.1)获取推文.我正在使用PHP TwitterOauth库.虽然我能够获取推文,但有两件事我不明白.
status/user_timeline的限制是200条推文.如何循环结果以获取最多3,200条推文?我读了一些关于发出多个GET请求的内容,但我不知道该怎么做.
提取的推文数量似乎随机变化,实际上很少达到参数'count'中指定的数量.这是为什么?
我的应用程序只是让访问者输入用户名并获取该用户的推文.这是我的代码.
if (isset($_GET['user'])) {
$user = $_GET['user'];
$content = $connection->get("statuses/user_timeline", array('count' => 200, 'exclude_replies' => true, 'screen_name' => $user));?>
$j = 0;
foreach ($content as $tweet) {
echo $j.' '.$tweet->text. '<br />';
$j++;
}
}
Run Code Online (Sandbox Code Playgroud)
更新:在尝试下面的queremys建议后,我想出了一个非常难看的"解决方案",它有几个主要的缺点.至少它显示了最多3,200条推文(以及一些重复).如果有问题的推特账号少于3,200条推文,结果会很奇怪.无论如何,只是想我会分享它,如果它可以是灵感.
if (isset($_GET['user'])) {
$user = $_GET['user'];
$content = $connection->get('statuses/user_timeline', array(
'count' => 200, 'exclude_replies' => true, 'screen_name' => $user, 'include_rts' => 1
));
$x = 0;
while ($x < 15) {
$text = array();
foreach ($content as $tweet) {
$text[] …Run Code Online (Sandbox Code Playgroud) 我在使用GET状态/ user_timeline和OAuth时遇到了麻烦.
我是twitter和编程的新手.我在文档中看到的大部分帮助都是针对POST的.
我之前使用的是:http://api.twitter.com/1/statuses/user_timeline.json?screen_name = userid
现在基于新API,我正在尝试使用:https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name = userid.但我得到"远程服务器返回错误:(400)错误请求".
我在dev.twitter.com上发了一个应用程序.我还设法生成签名.现在我不知道如何发布签名并获得输出.我使用C#web forms .net 3.5.我不能使用像twitterizer这样的第三方库.
我在Get twitter公共时间线,json + C#,没有第三方库和两个后续线程的跟踪线程.出了点问题.我假设它与API 1.1有关.
我正在尝试使用以下代码向Twitter发布推文,但不断收到错误"无法验证您","代码":32":
curl_global_init(CURL_GLOBAL_ALL);
CURL *curl = curl_easy_init();
char *signedurl = malloc(sizeof(char) * 1024); /* Not how it will be, but works in this example. */
char *url = "https://api.twitter.com/1.1/statuses/update.json";
signedurl = oauth_sign_url2(url, NULL, OA_HMAC, "POST", consumer_key, consumer_secret, user_token, user_secret);
char *status = "status=test";
curl_easy_setopt(curl, CURLOPT_URL, signedurl); /* URL we're connecting to, after being signed by oauthlib */
curl_easy_setopt(curl, CURLOPT_USERAGENT, "dummy-string"); /* Not the actual string, just a dummy for this example */
curl_easy_setopt(curl, CURLOPT_POST, 1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, status);
//curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); …Run Code Online (Sandbox Code Playgroud) 我想了解API Secret和Access Token Secret的责任/差异.当我需要保护我的API时,我通常会要求用户首先注册并获取accessToken,并使用相同的方法进行API调用.
另外,如果你能让我理解基于单一accessToken的当前方法有什么问题,为什么我更喜欢实现API Key,API Key Secret,Access Token,Access Token Secret,这将是非常有用的.
谢谢!
我在这里使用应用程序的示例https://github.com/itog/Twitter4j-android-Sample,它正在工作.我在我的应用程序中使用相同的方法,但是当我在线时它返回null
static final String CALLBACK_URL = "oauth://t4jsample"; [Copy the same as the Sample]
requestToken = twitter.getOAuthRequestToken(CALLBACK_URL);
Run Code Online (Sandbox Code Playgroud)
这是我的清单
<activity
android:name="com.my.app.SharePreviewActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="t4jsample"
android:scheme="oauth" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
这是我从示例应用程序中复制的其他代码.
private void askOAuth() {
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.setOAuthConsumerKey(CONSUMER_KEY);
configurationBuilder.setOAuthConsumerSecret(CONSUMER_SECRET);
Configuration configuration = configurationBuilder.build();
twitter = new TwitterFactory(configuration).getInstance();
try {
requestToken = twitter.getOAuthRequestToken(CALLBACK_URL);
Toast.makeText(this, "Please authorize this app!",
Toast.LENGTH_LONG).show();
this.startActivity(new Intent(Intent.ACTION_VIEW, Uri
.parse(requestToken.getAuthenticationURL())));
} catch (TwitterException e) …Run Code Online (Sandbox Code Playgroud) 我使用TwitterKit登录用户到应用程序.我在片段和TwitterAuthClient中使用自定义按钮来授权用户.登录happy flow正在按预期工作.
但是,当我取消授权并尝试通过单击登录按钮再次登录时,我收到以下错误:
com.twitter.sdk.android.core.TwitterAuthException: Authorize failed.
Run Code Online (Sandbox Code Playgroud)
我已经尝试清除活动会话并在取消之前第二次尝试登录之前注销,但它没有解决问题.
Twitter.getSessionManager().clearActiveSession();
Twitter.logOut();
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激!
我正在通过封闭的潜望镜 api 登录.我正在https://api.periscope.tv/api/v2/loginTwitter发出POST请求
请求正文
{
"bundle_id": "com.bountylabs.periscope",
"phone_number": "",
"session_key": "<twitter_user_oauth_key>",
"session_secret": "<twitter_user_oauth_secret>",
"user_id": "<twitter_user_id>",
"user_name": "<twitter_user_name>",
"vendor_id": "81EA8A9B-2950-40CD-9365-40535404DDE4"
}
Run Code Online (Sandbox Code Playgroud)
什么是twitter_user_oauth_key和twitter_user_oauth_secret?如何获得潜望镜消费者密钥和消费者秘密?
twitter-oauth ×10
twitter ×8
android ×3
oauth ×2
php ×2
access-token ×1
api ×1
c ×1
c# ×1
callback ×1
curl ×1
http-headers ×1
libcurl ×1
python ×1
secret-key ×1
twitter4j ×1
twython ×1
webforms ×1