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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

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

Q&A

解決済

2回答

2866閲覧

ラズパイ上でのpythonでLINE notifyから通知が送られてきません

Oncho

総合スコア6

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

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

0グッド

0クリップ

投稿2020/01/14 10:16

編集2020/01/14 14:18

現在、ラズベリーパイを用いて顔認識を行い、特定の顔が検出されたら、LINEに通知が送られる。というようなものを作っています。
処理としては、python3で行っていて、そこにLINE Notifyを利用してLINEに通知が来るように組み込みたいのですが、、、
まずPythonでLINEに通知が来るかどうか、単体でプログラムをはしらせたところ、アクセストークンは間違ってないと思うのですが、トークンが無効というように言われてしまいます。
そこで、アクセストークンが間違ってたのか確かめるために、ラズパイのターミナル上で、動かしたところ通知は来ました。

Pythonで試したこと
↓通知が来ない

import requests def main(): url ='https://notify-api.line.me/api/notify' token = '生成したアクセストークン' headers ={'Authorization' : 'Bearer' + token} message ='test' payload = {'message' : message} p = requests.post(url, headers=headers, data=payload) print(p) if __name__=='__main__': main()

OUTPUT
<Response [401]>

https://notify-bot.line.me/doc/ja/によるとResponse [401]はアクセストークンが無効という意味だそうです。

ラズパイのターミナルで行ったこと
↓ちゃんと通知が来た

curl -X POST -H 'Authorization: Bearer アクセストークン' -F 'message=test' https://notify-api.line.me/api/notify

分かる方がいらっしゃれば、教えてください!!!
初心者なので。詳細にしていただければ幸いです。

よろしくお願いします。

追記ですが、別のパソコンでJupyter使って上記のコードを試したら、通知が来るようになりました。
なぜ、ラズパイ上では通知が来ないのでしょうか。

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

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

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

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

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

shiracamus

2020/01/14 10:54

ターミナル以外でどのように実行してのですか? PATHや作業ディレクトリは同じですか?
Oncho

2020/01/14 11:22

ラズパイの方ではThonnyの方で記述したPythonプログラムをはしらせたり、.pyのファイルでデスクトップの方に保存したのでディレクトリは変えて、ターミナルで実行したりしました。
y_waiwai

2020/01/14 13:40

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
Oncho

2020/01/14 14:19

すみません。貼り付けました。
guest

回答2

0

ベストアンサー

単純にBearerの次に半角スペース が無いだけでは?

Python

1 headers ={'Authorization' : 'Bearer' + token}

Python

1 headers ={'Authorization' : 'Bearer ' + token}

投稿2020/01/14 14:18

Y.H.

総合スコア7914

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

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

Oncho

2020/01/14 14:32

現在、ちょうどラズパイが手元になく実行できないのですが、先ほどノートPCの方でスペースを抜いたものと入れたもので実行させましたら、抜いたものだと401が帰ってきて、入れたら、200で通知が来ました。 もしかしたら、スペースがなかったからかもしれません。明日試してみます。ありがとうございます。 ちなみになんですが、なぜそこにスペースが入るのと入らないのでは違うのでしょうか。プログラミングが初心者に故、教えていただけないでしょうか
Oncho

2020/01/15 03:21

成功しました! 私の確認と理解不足でした。スペースが重要なんですね 本当に助かりました!!ありがとうございました。
guest

0

'BEARE' と Bearer でスペルが違いますが、これが原因ですか?

投稿2020/01/14 11:32

shiracamus

総合スコア5406

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

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

Oncho

2020/01/14 11:38

失礼しました。こちらの記載ミスです。'Bearer'です。
shiracamus

2020/01/14 12:23

うまくいく Pythonのバージョンと RaspberryPy の Pythonのバージョンに違いはありますか?
Oncho

2020/01/14 12:38

両方ともpython3です。
shiracamus

2020/01/14 14:14

python --version で表示されるバージョンはいくつですか?
Oncho

2020/01/14 14:21

両方とも3.7.3でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問