Интеграция твиттер-постинга в Blackberry + IllegalArguementException - PullRequest
1 голос
/ 28 февраля 2012

Я пытаюсь встроить функцию отправки твиттера в свое приложение. я использую твиттер 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: :: Протокол не найден: 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 голосов
/ 29 февраля 2012

хочется ударить себя. мои клиенты сказали нам, что твиттер не работает ... поэтому я предположил, что это не сработало. по какой-то причине он не работает в симуляторе, но, кажется, работает нормально на устройстве.

клиенты предположили, что это не работает, так как после того, как мы попытаемся войти в систему, публикация займет слишком много времени и отображает третий экран в течение примерно 20 секунд, и они, похоже, рано вернулись, решив, что публикация прошла не работает.

теперь мне нужно выяснить способ размещения сообщения на третьем экране с просьбой дождаться успешного завершения сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...