・2022/04/16
Androidの公式 Twitterライブラリで Twitterのユーザー タイムラインを丸っと取得する方法
(Twitter Kit for Androidでまるっと取得!ユーザーアカウントでのログイン不要)
Tags: [Windows], [無人インストール]
● Androidで Twitterの投稿内容を投稿画像込みで丸っと取得する方法
まるっと取得したかった!質問は受け付けない!
前回は Python3の tweepyライブラリ、.NET C#の Tweetinviライブラリで作りましたが、今回は Androidで作ります。
・2022/04/10
Pythonの Tweepyライブラリで Twitterの投稿内容を投稿画像込みで丸っと取得する方法
まるっと取得したかった!質問は受け付けない!
・2022/04/14
.NET C#の Tweetinviライブラリで Twitterの投稿内容を投稿画像込みで丸っと取得する方法
まるっと取得したかった!質問は受け付けない!
・必要な物
取得したい Twitterのアカウントの @マークの部分(URLでも良い)
以上!
● Twitterの Androidライブラリ Twitter Kit SDKを使いました。
Twitterの Android用のライブラリには公式の Twitter Kit SDKを使いました。
Twitter Kit SDKのサポート終了のお知らせ
2018年5月6日
Twitter Kit for Android
31 Oct 2018
● Androidで Twitterの投稿内容を投稿画像込みで丸っと取得する方法
.\gradle.properties
...
android.useAndroidX=true
android.enableJetifier=true
.\settings.gradle
...
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// https://github.com/twitter-archive/twitter-kit-android
jcenter()
}
}
...
.\app\twitter.properties
# Twitter API key can be obtained at https://apps.twitter.com.
twitterConsumerKey=xxxxxxxxxxxxx
twitterConsumerSecret=xxxxxxxxxxxxxxxxxxxxx
# MoPub AD Unit Id can be obtained at https://app.mopub.com/.
mopubAdUnitId=EDIT_THIS(不要)
twitter-kit-android/samples/app/build.gradle
.\app\build.gradle
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
// Load API Key information in from property file
Properties props = new Properties()
try {
props.load(file('twitter.properties').newDataInputStream())
} catch (Exception _) {
throw new GradleException("Missing twitter.properties, check the twitter.properties.sample file.")
}
buildTypes {
// API Key
debug {
resValue "string", "com.twitter.sdk.android.CONSUMER_KEY", "\"${props.getProperty("twitterConsumerKey")}\""
resValue "string", "com.twitter.sdk.android.CONSUMER_SECRET", "\"${props.getProperty("twitterConsumerSecret")}\""
resValue "bool", "com.twitter.sdk.android.TRACE_ENABLED", "true"
resValue "bool", "com.twitter.sdk.android.COLLECT_IDENTIFIERS_ENABLED", "true"
buildConfigField "String", "MOPUB_AD_UNIT_ID", "\"${props.getProperty("mopubAdUnitId")}\""
}
...
dependencies {
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
// https://github.com/twitter-archive/twitter-kit-android
implementation('com.twitter.sdk.android:twitter-core:3.3.0') {transitive = true;}
implementation 'com.twitter.sdk.android:twitter:3.3.0'
// implementation 'com.twitter.sdk.android:tweet-ui:3.3.0'
// implementation 'com.twitter.sdk.android:tweet-composer:3.3.0'
}
.\app\src\main\AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="xxx.xxx">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:name=".MyApplication"
...
MyApplication.kt
package xxx.xxx
import android.app.Application
import android.util.Log
import com.twitter.sdk.android.core.DefaultLogger
import com.twitter.sdk.android.core.Twitter
import com.twitter.sdk.android.core.TwitterConfig
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// twitterAuthConfig = null to Generate internal
val config = TwitterConfig.Builder(this)
.logger(DefaultLogger(Log.DEBUG))
// .twitterAuthConfig(TwitterAuthConfig(CONSUMER_KEY, CONSUMER_SECRET))
.debug(true)
.build()
Twitter.initialize(config)
}
}
package xxx.xxx
import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.twitter.sdk.android.core.Callback
import com.twitter.sdk.android.core.Result
import com.twitter.sdk.android.core.TwitterCore
import com.twitter.sdk.android.core.TwitterException
import com.twitter.sdk.android.core.TwitterSession
import com.twitter.sdk.android.core.identity.TwitterAuthClient
import com.twitter.sdk.android.core.identity.TwitterLoginButton
import com.twitter.sdk.android.core.models.Tweet
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val screenName = "xxxxxxxx"
val tweetCount = 200
val sinceId: Long? = null
val maxId: Long? = null
val twitterApiClient = TwitterCore.getInstance().guestApiClient
val call = twitterApiClient.statusesService.userTimeline(
null,
screenName,
tweetCount,
sinceId,
maxId,
true,
false,
false,
true
)
call.enqueue(object : Callback<List<Tweet>>() {
override fun success(result: Result<List<Tweet>>) {
// タイムライン取得成功
val tweets: List<Tweet> = result.data
}
override fun failure(ex: TwitterException) {
// タイムライン取得失敗
}
})
}
}
if (config.twitterAuthConfig == null)
private Twitter(TwitterConfig config) {
context = config.context;
lifecycleManager = new ActivityLifecycleManager(context);
if (config.twitterAuthConfig == null) {
final String key = CommonUtils.getStringResourceValue(context, CONSUMER_KEY, "");
final String secret = CommonUtils.getStringResourceValue(context, CONSUMER_SECRET, "");
twitterAuthConfig = new TwitterAuthConfig(key, secret);
} else {
twitterAuthConfig = config.twitterAuthConfig;
}
Call<List<Tweet>> userTimeline
package com.twitter.sdk.android.core.services;
public interface StatusesService {
@GET("/1.1/statuses/user_timeline.json?" +
"tweet_mode=extended&include_cards=true&cards_platform=TwitterKit-13")
Call<List<Tweet>> userTimeline(@Query("user_id") Long userId,
@Query("screen_name") String screenName,
@Query("count") Integer count,
@Query("since_id") Long sinceId,
@Query("max_id") Long maxId,
@Query("trim_user") Boolean trimUser,
@Query("exclude_replies") Boolean excludeReplies,
@Query("contributor_details") Boolean contributeDetails,
@Query("include_rts") Boolean includeRetweets);
import android.content.Intent
import android.view.View
import com.twitter.sdk.android.core.TwitterSession
import com.twitter.sdk.android.core.identity.TwitterLoginButton
lateinit var client: TwitterAuthClient
lateinit var loginButton: TwitterLoginButton
{
loginButton = findViewById<View>(R.id.login_button) as TwitterLoginButton
loginButton.setCallback(object : Callback<TwitterSession>() {
override fun success(result: Result<TwitterSession>) {
}
override fun failure(ex: TwitterException) {
// Failed to get request token
}
})
// instantiate our client
client = TwitterAuthClient()
// make the call to login
client.authorize(this, object : Callback<TwitterSession>() {
override fun success(result: Result<TwitterSession>) {
// R
val r = result.data
}
override fun failure(ex: TwitterException) {
val f = ex.message
}
})
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
// this method call is necessary to get our callback to get called.
client.onActivityResult(requestCode, resultCode, data)
loginButton.onActivityResult(requestCode, resultCode, data)
}
● Duplicate class android.support.v4.app.INotificationSideChannel
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
> Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-26.1.0-runtime (com.android.support:support-compat:26.1.0)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-26.1.0-runtime (com.android.support:support-compat:26.1.0)
.\gradle.properties
android.useAndroidX=true
android.enableJetifier=true
● Disable wildcard imports
Disable wildcard imports
Tags: [Windows], [無人インストール]
●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)
Androidで DBのフレームワーク SQLDelightを使う方法、公式の手順だとエラーしか出ない罠
SQLDelightを Androidで使う方法
Androidで Twitter4Jを使って Twitterのユーザー タイムラインを丸っと取得する方法
Twitter4Jの Java ラッパでまるっと取得!ユーザーアカウントでのログインが必要
.NET C#の Tweetinviライブラリで Twitterの投稿内容を投稿画像込みで丸っと取得する方法
まるっと取得したかった!質問は受け付けない!
Pythonの Tweepyライブラリで Twitterの投稿内容を投稿画像込みで丸っと取得する方法
まるっと取得したかった!質問は受け付けない!
ちいかわの単行本を買ってみた!もちろん特装版!
特装版のカルタが怖いと話題のちいかわ単行本。
すみっコぐらし サンエックスの人気キャラクター お菓子のキッシュシュクレ(タルト)、フィナンシェ
すみっコぐらしshop東京駅店 東京キャラクターストリート 東京駅一番街に行ってみた
【全集中の呼吸】鬼滅の刃の食玩お菓子を買ったら報告するスレ、オマケシール集め【鬼殺隊】
【全買占め】「鬼滅の刃」ブームに乗っかって鬼滅のお菓子を根こそぎ買い占め、これは戦争だ【在庫滅殺】
【我が道を】遂にガチの食玩にも手を出してしまった。。。Re:ゼロから始める異世界生活ウエハース vol.3【突き進むのみ】
【レムは俺の嫁】レムが主役のアニメ、リゼロ【エミリアは脇役】
テレビアニメ ご注文はうさぎですか? 通称「ごちうさ」のフィギュアを買ったのでレビュー
ごちうさのスペシャル フィギュア チノ リゼ シャロを買ったのでレビュー、UFOキャッチャー景品
[HOME]
|
[BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c)
2022 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator
http://www.neko.ne.jp/~freewing/software/twitter_api_get_whole_tweet_android/