【问题标题】:Can we post image on twitter using twitter API in Android?我们可以在 Android 中使用 twitter API 在 twitter 上发布图片吗?
【发布时间】:2011-11-28 09:47:33
【问题描述】:

我已经成功集成了 twitter API,我可以从我的设备上发布文本,但我想知道两件事

  1. 是否可以使用 Android 中的 API 在 Twitter 上发布图片?

  2. 在 Twitter 中,我们使用了 OAuth.OAUTH_TOKENOAuth.OAUTH_TOKEN_SECRET 令牌。我在下面的代码中的第二个参数上传递令牌值可以吗?还是我必须留空?

    String token = prefs.getString(OAuth.OAUTH_TOKEN, OAuth_token_key);
    String secret = prefs.getString(OAuth.OAUTH_TOKEN_SECRET, OAuth_token_secret);
    

我搜索知道是否可以post image on twitter using twitter API in Android,但我没有找到任何我知道是否可以的链接。

我在 iPhonethere is a answer also 上遇到过类似的帖子图片问题。我不了解 iPhone,所以我不知道它是否是正确答案。这是 iPhone 发布图片的类似问题的链接

请帮我解决这个问题。

【问题讨论】:

    标签: android twitter


    【解决方案1】:

    是的,您可以在 Twitter 上发布图片。

    AIK,有两种方法可以将照片上传到 Twitter。

    首先您必须实现 Twitter API 并使用this Link 将 Photot 上传到 Twitter。

    对不起这个例子。因为我没有得到任何关于如何使用它的例子。

    使用 Second,您可以在 twitPic4j API 的帮助下完成此操作。 只需添加 twitPic4j 的 API 并编写以下代码即可上传照片。

    代码:

    File picture = new File(APP_FILE_PATH + "/"+filename+".jpg");  
    // Create TwitPic object and allocate TwitPicResponse object 
    TwitPic tpRequest = new TwitPic(TWITTER_NAME, TWITTER_PASSWORD); 
    TwitPicResponse tpResponse = null;  
    // Make request and handle exceptions                            
    try {         
            tpResponse = tpRequest.uploadAndPost(picture, customMessageEditText.getText()+" http://www.twsbi.com/");
    
    } 
    catch (IOException e) {         
            e.printStackTrace(); 
           Toast.makeText(getApplicationContext(), "Please enter valid username and password.", Toast.LENGTH_SHORT).show();
    } 
    catch (TwitPicException e) {         
            e.printStackTrace(); 
            Toast.makeText(getApplicationContext(), "Invalid username and password.", Toast.LENGTH_SHORT).show();
            Toast.makeText(getApplicationContext(), "Please enter valid Username and Password.", Toast.LENGTH_SHORT).show();
    }  
    // If we got a response back, print out response variables                               
    if(tpResponse != null) {         
           tpResponse.dumpVars();
           System.out.println(tpResponse.getStatus());
           if(tpResponse.getStatus().equals("ok")){
                Toast.makeText(getApplicationContext(), "Photo posted on Twitter.",Toast.LENGTH_SHORT).show();
                //picture.delete();
           }
     }
    

    以上代码适用于我的情况。

    希望你得到第二个的解决方案,我不知道如何使用第一个。

    享受。 :)

    更新

    如果仍然不适合您,请尝试下面列出的一些项目:

    Example 1

    Example 2

    Example 3

    Example 4

    希望对你有所帮助。

    快乐编码。

    ===================================

    FOR erdomester 和更新的答案

    ===================================

    请检查我使用 Example1 及其 api 给出的第一个链接:Twitter4J 因此,如果任何库停止提供在 twitter 上上传图像的功能,您可以使用其他库来实现相同的功能。请检查并阅读重新分级 Twitter4j。​​

    检查 Twitter4J API 以将文件上传到 Twitter:Twitter4j Image Upload

    例如,您还可以查看以下代码以在 Twitter 上上传图像文件。

    上传图片的代码:

        /**
     * To upload a picture with some piece of text.
     * 
     * 
     * @param file The file which we want to share with our tweet
     * @param message Message to display with picture
     * @param twitter Instance of authorized Twitter class
     * @throws Exception exception if any
     */
    
    public void uploadPic(File file, String message,Twitter twitter) throws Exception  {
        try{
            StatusUpdate status = new StatusUpdate(message);
            status.setMedia(file);
            twitter.updateStatus(status);}
        catch(TwitterException e){
            Log.d("TAG", "Pic Upload error" + e.getErrorMessage());
            throw e;
        }
    }
    

    我希望这对您的查询有更多帮助。

    感谢 eredomester 通知我 tweetpic 不再为 Twitter 工作。但是,在您没有完全搜索给定的回复之前,请不要投反对票。 Example1 中的 Twitter4J 库给出了关于将图像上传到 twitter 的清晰思路,您可以轻松实现它。

    有关更多帮助和代码,您还可以查看:Twitter Upload media

    注意:要使用它,请确保您拥有最新的 jar 文件。我为此使用了twitter4j-core-2.2.5.jar 或更多。

    如果您在这方面遇到任何问题,请评论我而不是投反对票。

    【讨论】:

    • 这个代码是上周工作的。现在它说用户名和密码无效。我没有得到它是什么问题。我输入了正确的密码和用户名
    • @sai: 检查它的用户名和密码。或者请删除该应用并重新安装,然后检查。
    • Twitter API v 1.0 现已弃用,请将链接更新至dev.twitter.com/docs/api/1.1/post/statuses/update_with_media
    • 更正您的链接恕我直言
    • @erdomester 请写正确的词。恕我直言,您是什么意思?
    【解决方案2】:

    是否可以使用 Android 中的 API 在 Twitter 上发布图片?

    是的,您可以在使用Twitter Media Uplload 成功进行身份验证后将图片上传到 Twitter。

    在推特中,我们使用了 OAuth.OAUTH_TOKEN 和 OAuth.OAUTH_TOKEN_SECRET 令牌。我在下面的代码中的第二个参数上传递令牌值是它 好的 ?还是我必须留空?

    您应该同时添加 Token 和 Token Secret Key,这对于 Tiwtter 的 setTokenWithSecret 方法很有用,您必须在其中发送 Token 和 Token Secret..

    【讨论】:

      【解决方案3】:

      是的,您可以使用 twitter4j 之类的 Twitter api 在 twitter 上发布图片,但我建议您使用 HttpPost 类和 DefaultHttpClient 类,因为它在实践中很好,您不需要向其中添加任何外部 twitter api。

      【讨论】:

      • 你有那个链接吗?如果我们使用 httppost 那么不需要添加外部 twitter api 吗?
      • 看看当我们在 Twitter 上不使用任何外部 api 上传照片时,我们必须以 Multi-part/form 的形式上传。只需转到此链接并研究 twitter rest api 文档dev.twitter.com/docs/api/1/post/statuses/update_with_media,如果我的回答对您有帮助,请点赞。
      猜你喜欢
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 2023-04-07
      • 2012-08-21
      • 1970-01-01
      • 2016-06-09
      • 1970-01-01
      相关资源
      最近更新 更多