当前位置: 首页 > 知识库问答 >
问题:

通过Android应用程序使用Twitter4J发布推文

韩朝斑
2023-03-14

我正试图通过我的android应用程序发布一条推特。在网上阅读教程,我写了下面提到的代码。

但是,每次调用twitter.updatestatus()时,我都会遇到以下异常:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.exampletweetdeep"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.exampletweetdeep.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

MainActivity.java:

package com.example.exampletweetdeep;

import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.conf.ConfigurationBuilder;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {

    String consumerKey = "<<>>";
    String consumerSecret = "<<>>";
    String accessToken = "<<>>";
    String accessSecret = "<<>>";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.i("Twitter activity", "First line");

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Log.i("Twitter activity", "Before building configuration");

        ConfigurationBuilder confB = new ConfigurationBuilder();
        confB.setDebugEnabled(true);
        confB.setOAuthConsumerKey(consumerKey);
        confB.setOAuthConsumerSecret(consumerSecret);
        confB.setOAuthAccessToken(accessToken);
        confB.setOAuthAccessTokenSecret(accessSecret);

        Log.i("Twitter activity", "After building configuration");

        TwitterFactory tF = new TwitterFactory(confB.build());
        Twitter twitter = tF.getInstance();

        try {
            Status status = twitter.updateStatus("Testing from android");

            Log.i("Twitter activity", "Done updating status");
        } catch (TwitterException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

共有1个答案

张鹏鹍
2023-03-14

twitter4j库升级为twitter4j-core-3.0.5.jar。我也面临着同样的问题,通过升级图书馆来解决它。

 类似资料:
  • 我有以下代码,一旦我收到Firebase推送通知或FCM,我的Android应用程序就会出现在前台。 现在在MainActivity中,我使用了如下捆绑包: 我的代码在以下情况下正常工作: 当设备上接收到FCM时: 如果应用程序打开,则执行操作 如果应用程序在后台,即最小化,则应用程序打开并执行操作 如果应用程序被杀死,应用程序将打开并执行操作 如果应用程序被杀死并且手机被锁定,应用程序会在锁屏顶

  • 有人帮忙吗?我已经在twitter上注册了,我检查了读写权限。

  • 据我所知,在APK下的google开发者控制台中有一个名为“UNPUBLISH”的选项。 在添加ManageAPK之后,google实际上删除了对APK的访问。 不幸的是,我在生产中上传了APK而不是BETA版,我需要删除/取消发布该应用程序。 我怎么能做到呢? 解决这个问题的最佳流程是什么。 我检查了所有与我的问题类似的问题,但所有答案都过时了,因为古尔奇添加了Manage APK来代替APK。

  • 我正在尝试使用tweepy(用于twitter的python api)发布推文。我有一个很长的url,使用itty bitty来承载一个降价页面。该链接可以通过twitter网站(此处为tweet)发布,但不能通过api发布。返回的错误表明tweet太长: 我已经确保tweet低于字符限制,减去t.co缩短的URL限制使用的字符(目前每个URL 23个)。不确定下一步要尝试什么?

  • 我有个大麻烦。我必须将应用程序中的一些参数发布到URL。但是,当我试图在WebView对象中执行此操作时,它会向我报告一个异常,该异常表示“不受信任的证书”(该异常由WebViewClient onReceivedSslError()的重写中的方法报告)。如何才能与服务器正确握手?你能给我一些提示吗?我快疯了... 真的,真的谢谢... 编辑:这是我定义webview的方式 这就是我在WebVie

  • 我正试图通过后台服务将数据发布到web服务器。 函数PostData将数据发送到服务器,但当我添加它时,程序显示: 不幸的是,程序停止工作 这是我的代码: 和堆栈跟踪: