質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1569閲覧

twitter4jでOAuth認証したい

Kanadekana_nana

総合スコア8

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/09/15 03:29

編集2020/09/16 01:42

前提・実現したいこと

twitter4jを用いてアプリケーションを作成しています。その際AOuth認証を用いたいのですが認証してもPINが表示されず困っています。
補足情報のリンク先の記事にはCallBackURLを空欄にすると出てくると書いているのですが空欄にしようとするとrequiredと表示され先に進めません。

発生している問題・エラーメッセージ

下のコードのURLから認証してもPINが表示されない

該当のソースコード

Java

1import twitter4j.*; 2import twitter4j.auth.AccessToken; 3import twitter4j.auth.RequestToken; 4 5import java.io.BufferedReader; 6import java.io.IOException; 7import java.io.InputStreamReader; 8 9public class App 10{ 11 public static void main( String[] args ) throws TwitterException, IOException { 12 Twitter twitter = TwitterFactory.getSingleton(); 13 twitter.setOAuthConsumer("consumerKey","consumerSecret"); 14 RequestToken rt = twitter.getOAuthRequestToken(); 15 Scanner s = new Scanner(System.in); 16 System.out.println(rt.getAuthorizationURL()); 17 System.out.println("PIN:"); 18 String pin = s.next(); 19 try { 20 AccessToken at = twitter.getOAuthAccessToken(rt, pin); 21 twitter.setOAuthAccessToken(at); 22 }catch (TwitterException e){ 23 System.out.println("PINが違うよ"); 24 System.exit(0); 25 } 26 } 27} 28

試したこと

CallBackURLを空白にはできなかったのでcallback://にして実行しています。

補足情報(FW/ツールのバージョンなど)

参考記事
https://blog.unsweets.net/2015/01/twitter4j-pin/

画像

requiredと書いており入力しないと設定を保存できない
(websiteURLは適当です。)

この画面のまま動かない

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2020/09/15 04:54

> CallBackURLを空白にはできなかったのでcallback://にして実行しています。 https://developer.twitter.com/en/apps から管理するアプリの設定の話をしていると思っていいですか? ×ボタンで削除などで空にできませんか? System.out.println(rt.getAuthorizationURL()); の行でURLが出力されていませんか?
Kanadekana_nana

2020/09/15 10:09

返信ありがとうございます。 説明不足でした、その通りです。 >xボタンで削除などで空にできませんか? Authentication setting のeditから設定しているのですが今のところ空欄にはできないと思います。 >URLが出力されていませんか? されていますが、そこで出力されたURLで認証した後 ”アプリケーションに戻ります、しばらくお待ちください” と表示されたまま動かないです。 画像等質問文に追加します。
quickquip

2020/09/16 01:38

些細ではありますが AOuth→OAuth の修正は(今からでも)しておいていいかもしれません。
Kanadekana_nana

2020/09/16 01:41

うわ、恥ずかしいミスしてますね。。。 気づきませんでした、修正しておきます。
guest

回答1

0

ベストアンサー

(V2 APIに向けてDeveloper Portalのページがガラッと変わったのですね)

Enable 3rd party authentication をオンにするなら Callback URLs は必須です。
「TwitteriアカウントでログインしたいWebサイト」がまずあって、そこに飛ばなければなりません。(スマホ/デスクトップアプリの場合はschemeをOSに設定するのでしょうが詳しくありません)

Twitter APIにアクセスするプログラム(Developer Portal でいうスタンドアローンアプリケーション)に対してPINを発行するだけなら、Enable 3rd party authentication をオンにする必要はないかと思います。

これまでは、Callback URLsを入力したら 3rd party authentication ができるようになる/入力しなかったら 3rd party authentication は使わない、という思想の設定画面でした。
今はそうではなくなったようです。

投稿2020/09/15 11:12

quickquip

総合スコア11072

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kanadekana_nana

2020/09/15 12:03

webサイトは作ってないので必然的にオフにしないといけないのですね。 さきほどオフにして実行してみたのですがおなじくロード画面から動きません。。。
quickquip

2020/09/15 13:08

カンで言うと Enable 3rd party authentication をオンにして、Callback URLsを空にしてから、Callback URLsをまたオフにする。とかでどうでしょうか……
Kanadekana_nana

2020/09/15 14:21

できました!まさかそんな方法で。。。回答ありがとうございます! ちなみにですがCall back URLを使いたい場合って自分でwebページ作らないといけないってことですか?
quickquip

2020/09/15 14:25

よかったです。 Webページの認証(≒ユーザ登録)をTwiiterアカウントでしたい時に使うものですから。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問