Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
企業システムにおけるTwitter API適用事例とTwitter4Jアップデート #Twit...
Search
yusuke
September 17, 2022
Technology
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
企業システムにおけるTwitter API適用事例とTwitter4Jアップデート #TwitterDevJP
yusuke
September 17, 2022
More Decks by yusuke
See All by yusuke
AI時代のPhpStorm最新事情 #phpcon_odawara
yusuke
0
520
JetBrainsのAI機能の紹介 #jjug
yusuke
0
360
日本語プログラミングとSpring Bootアプリケーション開発 #kanjava
yusuke
3
840
Python開発環境 - PyCharmとAI #stapy
yusuke
1
130
PhpStorm超絶技巧40分集中講義 #phpconkagawa
yusuke
6
2.2k
PhpStorm超絶技巧20分集中講座 #phpcon_odawara #kama
yusuke
2
1.1k
PHPカンファレンス北海道 - PhpStorm最新情報 #phpcondo
yusuke
1
230
PhpStorm最新情報 AIとnew UI、便利プラグイン #phpcon_okinawa
yusuke
0
480
最新JavaとIDE #jjug
yusuke
1
500
Other Decks in Technology
See All in Technology
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
460
AWS Blocks が楽しい #ゆるWeb札幌
tacck
PRO
0
150
内製AIチャットボット開発で学んだ Datadog Agent Observability活用術
mkdev10
0
140
Windows の互換機能 - 古いプログラムはなぜ動作できるのか
murachiakira
PRO
0
110
巨大気象データと戦う ― サロゲートモデル学習を高速化する圧縮技術
gpuunite_official
0
280
医療の現場を変革に挑戦した半年間の軌跡 - PythonとAIで現場を変える / From Code to Care
soudai
PRO
1
620
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
12
86k
平文パスワードはログに“残り” ── 肝心の侵入は“痕跡すら残らない”
kuroneko13
0
130
Introduction to Bill One Development Engineer
sansan33
PRO
0
470
IHV like なユースケースへのOpenID Connect 関連仕様の適用事例
optim
0
280
みてねにおけるAI-DLC導入活動とAIドリブン開発の現在地/JAWS-UG AI-DLC #2
isaoshimizu
2
180
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.3k
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Building the Perfect Custom Keyboard
takai
2
850
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
180
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
710
Odyssey Design
rkendrick25
PRO
2
780
Designing for Timeless Needs
cassininazir
1
450
BBQ
matthewcrist
89
10k
How to make the Groovebox
asonas
2
2.3k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
810
The Language of Interfaces
destraynor
162
27k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Transcript
اۀγεςϜʹ͓͚Δ Twitter APIద༻ࣄྫ @yusuke ࢁຊϢʔεέ ͱTwitter4JΞοϓσʔτ
w+BWB͖ͷ044σϕϩού w+BWBνϟϯϐΦϯ w5XJUUFS+࡞ऀ ͖ͳϒΩγϟʔϓϚʔΧʔ ϑϨϯυίʔυ48
5IFUJNFMJOF w ݄5XJUUFSɺ5XJUUFS"1*Λൃݟ w ݄5XJUUFS+ΛϦϦʔε w "1*͕͖͗ͯ͢5XJUUFSʹೖࣾ %FWFMPQFS"EWPDBUFͱͯ͠ ࠃσϕϩούͷࢧԉɺ%FWFMPQFS5FBUJNFͷ։࠵ w
ʙגࣜձࣾαϜϥΠζϜઃཱ
ྑ͋͘Δ5XJUUFS"1*ͷࣄྫ wΩϟϯϖʔϯ wήʔϜͰ࣮ΛπΠʔτ wট w4/4ΞΧϯτϩάΠϯ ίϯγϡʔϚ͚ͷద༻͕ଟ͍
גࣜձࣾαϜϥΠζϜ ւ֎ͷπʔϧɺαʔϏεൢച +FU#SBJOTɺ(JU)VCɺ%BUBEPH ࣗࣾ։ൃɾൢച !$*DMPOF
wࣾɺӦۀɺٕज़αϙʔτ໊ͷྵࡉاۀ wൢγεςϜɺ&$γεςϜ w๏ਓސ٬ઍɺݸਓސ٬ສ גࣜձࣾαϜϥΠζϜ ۀޮԽͷҰͱͯ͠Twitter APIΛར༻
גࣜձࣾαϜϥΠζϜγεςϜߏ &$ ൢചཧ ࢮ׆ࢹ ग़ୀࣾ௨
Ӧۀ࣌ؒ֎ɺॕٳʹ5XJUUFS%.Ͱ௨ &$ උߟཝʹ͍߹Θ͕ͤهࡌ ܾࡁ࣌ɺΧʔυ໊ٛ૬ҧ ॕٳɾӦۀ࣌ؒఆIUUQTHJUIVCDPNZVTVLFCVTJOFTT$BMFOEBS+ ൢചཧ ফ͠ࠐΈ࣌ɺֹۚෆҰக
ࢮ׆ࢹ αʔόμϯ ϨεϙϯεԆ αʔόূ໌ॻ༗ޮظݶ 5XJUUFS%.Ͱ௨
ग़ࣾୀࣾͰπΠʔτ ग़ୀࣾ௨ ग़ୀࣾঢ়گΛπΠʔτ
اۀͷ5XJUUFS"1*ར༻ wӦۀ࣌ؒ֎ॕٳʹ௨ wγεςϜͷΠϕϯτ wࣗಈԽͰग़དྷͳ͍ঝೝϫʔΫϑϩʔ wϚʔέςΟϯά w8FCαΠτ63-ɺϋογϡλάɺ໊Τΰα w$3. w%.ɺ!πΠʔτͰސ٬ରԠ
5XJUUFS࿈ܞ͢ΔϝϦοτ ʮ͍ͭݟ͍ͯΔπʔϧʯΛ͑Δ Ϟχλεɺʮར༻࣮ଶௐࠪϏδωενϟοτπʔϧฤʯΛൃදIUUQTNPOJUBTDPKQDIBU@UPPM
5XJUUFS࿈ܞ͢ΔϝϦοτ wը໘Λ࡞͢Δඞཁ͕ͳ͍ wํͷΓͱΓ؆୯ wϫϯλονͰΠϯλϥΫτՄೳ 2VJDLSFTQPOTFˠ
None
Ͳͷ"1*Λ͏͖͔ w"1*W "1*W w6TFS4USFBNTͷସʁ
WΛ͏ϝϦοτ wWʹ͔͠Ͱ͖ͳ͍͜ͱ wεϖʔεɺϒοΫϚʔΫͷΞΫηε
৽نʹAPIΛѻ͏ͳΒv2͕ѹతʹ͔Γ͍͢ WΛ͏ϝϦοτ w࣮ࡍͷ6*༻ޠͱ"1*༻ޠ͕౷Ұ͞Ε͍ͯΔ ྫ w"1*WGPMMPXFSGSJFOE w"1*WGPMMPXFSGPMMPXJOH
WΛ͏ϝϦοτ w"1*ઃܭ͕ϞμϯྫϑΥϩʔΛ֎͢ w7 %&-&5&VTFST\TPVSDF@VTFS@JE^GPMMPXJOH\UBSHFU@VTFS@JE^ w7 1045GSJFOETIJQTEFTUSPZKTPO VTFS@JE\VTFS@JE^
"1*WͰग़དྷͳ͍͜ͱ͋Δ wྫμΠϨΫτϝοηʔδૹड৴ IUUQTUSFMMPDPNCNZGS,X7UXJUUFSEFWFMPQFSQMBUGPSNSPBENBQ
"1*WʁWʁ w"1*WͰग़དྷΔ͜ͱ"1*WͰ wطଘΞϓϦٸ͍ͰҠߦ͢Δඞཁͳͦ͞͏
ΈΜͳେ͖6TFS4USFBNTͷସʁ w"DDPVOU"DUJWJUZ"1* w8FCIPPLͰϑΥϩʔɺ%.ͷ௨Λड৴ w࠶ଓॲཧෆཁ IUUQTEFWFMPQFSUXJUUFSDPNKBEPDTUVUPSJBMTHFUUJOHTUBSUFEXJUIUIFBDDPVOUBDUJWJUZBQJ
ΈΜͳେ͖6TFS4USFBNTͷସʁ w"DDPVOU"DUJWJUZ"1* w8FCIPPLͰϑΥϩʔɺ%.ͷ௨Λड৴ w࠶ଓॲཧෆཁ IUUQTEFWFMPQFSUXJUUFSDPNKBEPDTUVUPSJBMTHFUUJOHTUBSUFEXJUIUIFBDDPVOUBDUJWJUZBQJ ΫϥΠΞϯτΞϓϦ։ൃʹෆ͖
5XJUUFS+ϩʔυϚοϓ wཁ+BWB w"1*Wαϙʔτ wϞμϯͳΠϯλʔϑΣʔε wϞδϡʔϧαϙʔτ w!/VMMBCMF!/PU/VMM!3BOHFΞϊςʔτ w"DDPVOU"DUJWJUZ"1*αϙʔτ
ϞμϯͳΠϯλʔϑΣʔε Twitter twitter = new TwitterFactory(new ConfigurationBuilder() .setOAuthConsumerKey("my consumer key")
.setOAuthConsumerSecret("my consumer secret") .build()).getInstance(); Twitter twitter = Twitter.newBuilder() .oAuthConsumerKey("my consumer key") .oAuthConsumerSecret("my consumer secret") .build();
Ϟδϡʔϧαϙʔτ
!/VMMBCMF!/PU/VMM!3BOHFΞϊςʔτ ݱߦ 3BOHFΞϊςʔτ͖
"DDPVOU"DUJWJUZ"1*αϙʔτ var activity = TwitterAccountActivity.newBuilder() .onDirectMessageReceived(dm -> System.out.printf("direct message received:%s"
, dm.getText())) .onMention(tweet -> System.out.printf("mention received:%s" , tweet.getText())) .onPort(8080).build(); activity.start(); activity.await();
3&45"1* ΠϕϯτυϦϒϯ var restActivity = TwitterRestBasedAccountActivity .newBuilder() .onDirectMessageReceived(dm -> System.out.printf("direct
message received:%s" , dm.getText())) .onMention(tweet -> System.out.printf("direct message received:%s" , tweet.getText())) .pollIntervalSeconds(60).build(); restActivity.start(); restActivity.await();
IUUQTHJUIVCDPN5XJUUFS+5XJUUFS+
ਐԽ͢Δ5XJUUFS ਐԽ͢Δ5XJUUFS"1* "1*Λ׆༻ͯ͠ҰॹʹਐԽ͠·͠ΐ͏ʂ
اۀγεςϜʹ͓͚Δ Twitter APIద༻ࣄྫ @yusuke ࢁຊϢʔεέ ͱTwitter4JΞοϓσʔτ