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

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

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

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

解決済

twitter apiの緯度経度を指定して情報を抜き取りたいです。

suwakou
suwakou

総合スコア13

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

1回答

0評価

3クリップ

910閲覧

投稿2020/08/19 08:32

編集2020/08/23 07:59

twitter apiの地理情報を指定して情報を抜き取りたいのですが、
テキストを参考にしてスクリプトを入力したところ、この様なエラーが出ました。
初めて遭遇するタイプのエラーで、調べてみましたがよくわかりません
どのような状態なのでしょうか。教えていただきたいです。

>>> from twitter import * >>> auth = OAuth( ... consumer_key='[000]', ... consumer_secret='[000]', ... token='[000]', ... token_secret='[000]' ... ) >>> params = dict() >>> params["locations"] = "-122.75,36.8,-121.75,37.8" >>> twitter_stream = TwitterStream(auth=auth, domain='stream.Twitter.com') >>> for msg in twitter_stream.statuses.filter(**params): ... print(msg) ... Traceback (most recent call last): File "C:\Users\Shun\Documents\python\lib\site-packages\twitter\stream.py", line 211, in handle_stream_response handle = urllib_request.urlopen(req,) File "C:\Users\Shun\Documents\python\lib\urllib\request.py", line 222, in urlopen return opener.open(url, data, timeout) File "C:\Users\Shun\Documents\python\lib\urllib\request.py", line 531, in open response = meth(req, response) File "C:\Users\Shun\Documents\python\lib\urllib\request.py", line 640, in http_response response = self.parent.error( File "C:\Users\Shun\Documents\python\lib\urllib\request.py", line 569, in error return self._call_chain(*args) File "C:\Users\Shun\Documents\python\lib\urllib\request.py", line 502, in _call_chain result = func(*args) File "C:\Users\Shun\Documents\python\lib\urllib\request.py", line 649, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 401: Authorization Required During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\Shun\Documents\python\lib\site-packages\twitter\api.py", line 334, in __call__ return self._handle_response(req, uri, arg_data, _timeout) File "C:\Users\Shun\Documents\python\lib\site-packages\twitter\stream.py", line 286, in _handle_response return handle_stream_response( File "C:\Users\Shun\Documents\python\lib\site-packages\twitter\stream.py", line 213, in handle_stream_response raise TwitterHTTPError(e, uri, 'json', arg_data) twitter.api.TwitterHTTPError: Twitter sent status 401 for URL: 1.1/statuses/filter.json using parameters: (locations=-122.75%2C36.8%2C-121.75%2C37.8&oauth_consumer_key=%5BgxtRnfaP6Gc8hjWBVGAcYxpAZ%5D&oauth_nonce=13315667029978475316&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1597825461&oauth_token=%5B1273157088810872832-L77lHzFDHnQvtGiak9iiSw9uC5KgqV%5D&oauth_version=1.0&oauth_signature=tUuxH8vAb014F%2Blf7wiTeGkWURw%3D) details: <html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>\n<title>Error 401 Unauthorized</title> </head> <body> <h2>HTTP ERROR: 401</h2> <p>Problem accessing '/1.1/statuses/filter.json'. Reason: <pre> Unauthorized</pre> </body> </html>

参考にしたテキスト(Twitterの空間分析/桐村喬/20191110)
イメージ説明

過去に地理情報無しで抜き取れたタイムラインとそのコード

import tweepy from datetime import timedelta CK = '000' CS = '000' AT = '000' AS = '000' class Listener(tweepy.StreamListener): def on_status(self, status): status.created_at += timedelta(hours=9) print('------------------------------') print(status.text) print("{name}({screen}) {created} via {src}\n".format(name=status.author.name, screen=status.author.screen_name,created=status.created_at, src=status.source)) return True def on_error(self, status_code): print('エラー発生: ' + str(status_code)) return True def on_timeout(self): print('Timeout...') return True auth = tweepy.OAuthHandler(CK, CS) auth.set_access_token(AT, AS) listener = Listener() stream = tweepy.Stream(auth, listener) stream.filter(track = ["プログラミング"]) RT @sunabacoTKMT: 3期の卒業生の方が案件とってきた!! ウレシ( ꈍᴗꈍ) #sunabaco #プログラミング https://t.co/zrLlfbhO5x CARIN@SUNABACO(CarinWaka21) 2020-08-23 16:51:05 via Twitter for iPhone

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

can110

2020/08/19 08:37

認証情報は正しいものを渡していますか?
suwakou

2020/08/19 08:41 編集

APIの認証キーは提供された文字列を使っていて正しいと思います。更新するべきでしょうか?
can110

2020/08/19 08:44

地理情報を指定しない、より単純なコードでは正常に動作したでしょうか?
suwakou

2020/08/19 08:46

緯度経度を指定せずにAPI認証キーをつかってtwitterのタイムラインを取得することには成功しています。
YakumoSaki

2020/08/19 08:53

回答じゃないんですが、例外メッセージにoauthのキーが出ちゃってますよ
can110

2020/08/19 08:58 編集

比較のため、正常に動作したコードも提示ください。認証情報部分は伏字でかまいません。
suwakou

2020/08/23 07:52

以下のコードがタイムラインを取得出来たコードです。質問も追記します。 import tweepy from datetime import timedelta CK = '000' CS = '000' AT = '000' AS = '000' class Listener(tweepy.StreamListener): def on_status(self, status): status.created_at += timedelta(hours=9) print('------------------------------') print(status.text) print("{name}({screen}) {created} via {src}\n".format(name=status.author.name, screen=status.author.screen_name,created=status.created_at, src=status.source)) return True def on_error(self, status_code): print('エラー発生: ' + str(status_code)) return True def on_timeout(self): print('Timeout...') return True auth = tweepy.OAuthHandler(CK, CS) auth.set_access_token(AT, AS) listener = Listener() stream = tweepy.Stream(auth, listener) stream.filter(track = ["プログラミング"]) RT @sunabacoTKMT: 3期の卒業生の方が案件とってきた!! ウレシ( ꈍᴗꈍ) #sunabaco #プログラミング https://t.co/zrLlfbhO5x CARIN@SUNABACO(CarinWaka21) 2020-08-23 16:51:05 via Twitter for iPhone

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。