【问题标题】:android - Issues in twitter integration using twitter4jandroid - 使用 twitter4j 进行 twitter 集成的问题
【发布时间】:2013-08-01 16:21:46
【问题描述】:

我是 android 中 twitter 集成的新手。我使用这个tutorial.将twitter集成到android应用程序中,我遇到了一些问题。

  1. 如果我从清单中删除了 targetversion,我的应用程序只会从 ICS 执行。为什么?

在这里,我从清单文件中删除了 android:targetSdkVersion="15"。

现在,

2.在 twitter 的开发者控制台中,我将我的应用程序的回调 url 设置为“https://www.google.co.in/”,然后我尝试在我们的代码中使用这个回调 url 运行这个应用程序。实际上在成功登录后,它应该重定向到应用程序,但在这里它会重定向到回调 url(这里指的是谷歌控制台)。

静态最终字符串 TWITTER_CALLBACK_URL = "https://www.google.co.in/";

但是在这里我在我们的代码中设置了以下回调 url,然后它就可以正常工作了。为什么?它是 twitter4j 中的默认回调 url。请任何人都可以帮助我。

静态最终字符串 TWITTER_CALLBACK_URL = "oauth://t4jsample";

清单文件

< manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.androidhive.twitterconnect"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8" 
        />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="oauth" android:host="t4jsample"/>
            </intent-filter>
        </activity>
    </application>

    <!-- Permission - Internet Connect -->
    <uses-permission android:name="android.permission.INTERNET" />

    <!-- Network State Permissions -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

< /manifest>

【问题讨论】:

  • 您的清单是如何定义的?专门针对处理授权的 Activity。
  • @IceMAN:我用清单文件代码更新了帖子。请参考这里。
  • 为什么需要从 Manifest 中删除 android:targetSdkVersion?
  • @rineez:以前我将长时间运行的操作放在 UI 线程中,所以我删除了 android:targetSdkVersion。否则不会执行。现在我解决了这个问题。不需要删除 android:targetSdkVersion 而是将需要一些时间的代码放在线程/异步任务中。
  • @naresh 很高兴您终于找到了正确的路径。将长时间运行的操作远离 UI 线程有一个明显的原因。 :)

标签: android twitter twitter4j


【解决方案1】:

新的 Twiiter 集成 v 1.1

在这里检查代码

https://github.com/dwivedi/twitter_api_1.1_implementation.git

【讨论】:

  • 这使用相同的重定向 URL “oauth://t4jsample”,它只是给我一个错误,并没有将我重定向回我的应用程序。
【解决方案2】:

身份验证后重定向到回调 URL 是正常行为。请先阅读一下OAuth。回调 URL 用于将授权令牌传递回请求应用程序。您应该将其分配给应用程序中的 url,该 url 可以读取令牌并使用它采取必要的操作。对于 twitter4j,URL oauth://t4jsample 能够处理这部分。希望这对您来说很清楚。

【讨论】:

  • 对于使用 twitter4j 在 android 中的每个 twitter 集成,回调 url 是“oauth://t4jsample”,即使我们在 twitter 开发控制台中设置了不同的回调 url。对吗?
  • 我从 twitter4j.org/en/index.html#download(twitter4j-3.0.3.zip 下载了 twitter4j 库(JavaDoc / Migration guide from 2.1.x to 2.2.x))。我使用了这个路径中的“twitter4j-core-3.0.3”jar 文件“twitter4j-3.0.3\lib\”。对吗?
  • 是否可以打开推特应用而不是网页进行身份验证?
  • @naresh 是的。使用 twitter4j 时,您应该始终使用该回调 URL。我不知道还有什么其他方法。而且我不确定使用 twitter 应用程序而不是网页的可能性。
  • @rineez-如果我们在应用程序的不同活动中使用 twitter,我们需要区分每个活动的回调 url,因为它不应该在活动之间混淆..??
猜你喜欢
  • 2013-07-04
  • 2014-04-27
  • 2013-07-08
  • 1970-01-01
  • 1970-01-01
  • 2015-08-04
  • 2014-09-02
  • 2015-07-24
  • 2011-11-15
相关资源
最近更新 更多