黑莓整合推特+ IllegalArguementException

问题描述:

我想在我的应用程序中嵌入推特功能。 我正在使用twitter api_me-1.8 我能够到达登录屏幕(虽然大部分文本都显示为框,我猜测文本是印地文/印度尼西亚文字),但是,只要我输入我的凭证,我会被带到另一个页面,在框中的顶部有一些文本... 以及更多英文文本(你可以撤消对任何应用程序的访问...)...然后我得到illeagalArguementException一分钟后...黑莓整合推特+ IllegalArguementException

我试图调试应用程序,

public TwitterUiScreen(String wallMsg) { 
    System.out.println("Twitter UI BEGINS!"); 
    setTitle("Twitter"); 
    this.wallMsg = wallMsg; 
    BrowserContentManager browserMngr = new BrowserContentManager(0); 
    RenderingOptions rendOptions = browserMngr.getRenderingSession() 
      .getRenderingOptions(); 
    rendOptions.setProperty(RenderingOptions.CORE_OPTIONS_GUID, 
      RenderingOptions.SHOW_IMAGES_IN_HTML, false); 
    rendOptions.setProperty(RenderingOptions.CORE_OPTIONS_GUID, 
      RenderingOptions.ENABLE_EMBEDDED_RICH_CONTENT, true); 
    rendOptions.setProperty(RenderingOptions.CORE_OPTIONS_GUID, 
      RenderingOptions.DEFAULT_FONT_FACE, true); 
    rendOptions.setProperty(RenderingOptions.CORE_OPTIONS_GUID, 
      RenderingOptions.DEFAULT_CHARSET_VALUE, true); 
    rendOptions.setProperty(RenderingOptions.CORE_OPTIONS_GUID, 
      RenderingOptions.JAVASCRIPT_ENABLED, true); 
    /* 
    * browserMngr.getRenderingSession().getRenderingOptions().setProperty(
    * RenderingOptions.CORE_OPTIONS_GUID, 
    * RenderingOptions.DEFAULT_FONT_FACE, Font.getDefaultFont()); 
    */ 
    add(browserMngr);  
    OAuthDialogWrapper pageWrapper = new BrowserContentManagerOAuthDialogWrapper(browserMngr); 
    pageWrapper.setConsumerKey(CONSUMER_KEY); 
    pageWrapper.setConsumerSecret(CONSUMER_SECRET); 
    pageWrapper.setCallbackUrl(CALLBACK_URL); 
    pageWrapper.setOAuthListener(this); 
    pageWrapper.login(); 
} 

我有高达最后一行断点,所有的人都被击中,没有问题...(我认为它是在这个页面中: - BrowserContentManagerOAuthDialogWrapper.java(版本1.1:45.3,超级位) 之后我进入第三个屏幕。

的评论几乎没有legible-,所以我想我也可以添加代码在这里:

public static final String OAUTH_CALLBACK_SCHEME = "x-oauthflow-twitter"; 
public static final String OAUTH_CALLBACK_HOST = "callback"; 
public static final String OAUTH_CALLBACK_URL = OAUTH_CALLBACK_SCHEME+ "://" + OAUTH_CALLBACK_HOST; 
private final String CALLBACK_URL = OAUTH_CALLBACK_URL; 

我设法源并将其连接到jar文件。该BrowserContentManagerOAuthDialogWrapper.java抛出异常是::协议未发现:net.rim.device.cldc.io.x-oauthflow-twitter.Protocol 在这种方法::

protected void loadUrl(final String url, final byte[] postData, 
    final Event event) { 
    new Thread() { 
     public void run() { 
      try { 
       HttpConnection conn = getConnection(url); 
       // 
       if (postData != null) { 
        conn.setRequestMethod(HttpConnection.POST); 
        conn.setRequestProperty(
         "Content-Type", 
         "application/x-www-form-urlencoded"); 
        conn.setRequestProperty(
         "Content-Length", String.valueOf(postData.length)); 
        // 
        OutputStream out = conn.openOutputStream(); 
        out.write(postData); 
        out.close(); 
       } 
       // 
       browserManager.setContent(
        conn, renderingListenerOAuth, event); 
      } catch (IOException e) { 
       throw new IllegalArgumentException(e.getMessage()); 
      } 
     } 
    }.start(); 
} 
+0

你的“CALLBACK_URL”是什么?如果它不作为函数存在,那么当你登录时,你会得到这种类型的错误(即ArgumentException)。 – 2012-02-28 06:36:21

感觉像打到自己。 我的客户曾告诉我们该推特发布不起作用... 所以我认为它没有工作。 出于某种原因,它不能在模拟器中工作 - 但似乎在设备上正常工作。

客户认为它不起作用,因为在我们尝试登录之后,发布过程需要很长时间,并且显示第三个屏幕大约20秒,并且他们似乎早点击回来,决定发布不工作。

现在我需要找出一种方法在第三个屏幕上发布消息,要求用户等待帖子成功。