在Blackberry + IllegalArguementException中集成twitter发布

时间:2012-02-28 05:48:17

标签: blackberry twitter

我想在我的应用程序中嵌入twitter发布功能。 我正在使用twitter api_me-1.8 我能够到达登录界面(虽然大部分文字都显示为方框 - 我猜这个文字是印地文/泰米尔语,因为我在印度...),但是一旦我输入我的凭据,我进入另一个页面顶部有一些文字的页面...... 以下更多的英文文本(你可以撤销对任何应用程序的访问...)...然后我在一分钟后得到一个illeagalArguementException ......

我试图调试应用程序,

    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,超级位) 之后我进入第三个屏幕。

评论几乎不可读 - 所以我想我也可以在这里添加代码:

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抛出的异常是:: Protocol not found: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();
}

1 个答案:

答案 0 :(得分:0)

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

客户认为它不起作用,因为在我们尝试登录后,发布时间过长,并显示第三个屏幕约20秒,他们似乎已提前点击,决定发布不行。

现在我需要想办法在第三个屏幕上发布消息,要求用户等待帖子成功。