黑莓整合推特+ 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();
}
答
感觉像打到自己。 我的客户曾告诉我们该推特发布不起作用... 所以我认为它没有工作。 出于某种原因,它不能在模拟器中工作 - 但似乎在设备上正常工作。
客户认为它不起作用,因为在我们尝试登录之后,发布过程需要很长时间,并且显示第三个屏幕大约20秒,并且他们似乎早点击回来,决定发布不工作。
现在我需要找出一种方法在第三个屏幕上发布消息,要求用户等待帖子成功。
你的“CALLBACK_URL”是什么?如果它不作为函数存在,那么当你登录时,你会得到这种类型的错误(即ArgumentException)。 – 2012-02-28 06:36:21