週末のアプリ作成

androidアプリ個人開発者の実態を報告します。アプリの収入も公開中です♪

linenotify 401 エラーが出た時の対処方法

Line Notify API を利用し通知プログラムで401エラーが出た時の対処方法

こんにちは、TF's apps(滋賀で活動する個人アプリ開発者)です。今回はいつもブログで記載しているアプリの記事ではなく、PythonでLine通知プログラミングした時に1時間ほどハマった時の備忘録として本記事で紹介したいと思います。今回はかなり調べましたが全くわからず、あきらめかけましたが、なんとか解決できました。気づけばすごく単純なミスでしたね・・・・プログラムは記述したとおりに動作するので皆様も自分のコードを疑って下さい。思い込んだ分、ゴールは遠くなりますね・・・・。

では早速紹介です。

自身のスマホに対してLineで「こんにちは」を通知するだけの単純なPythonコードなのですが、ここに魔物がいました(汗)

■修正前

#Line 通知プログラム
import requests

token = "*** ここは 非公開 です、 ご自身のトークンを入力ください ***"

auth={ "Authorization" : "Bearer"+token}
content={"message":"こんにちは"}

result = requests.post(url, headers=auth, data=content)
print( result )

パッと見てまったく問題ないように思いませんか?

しかし実行すると <Response [401]> のエラーとなります。Webで検索すると下記のエラー内容となります。

ステータスコード 401 がレスポンスされた場合は、該当するアクセストークンが LINE Notify 側で無効化されていることを示します。この場合、連携サービス側でも連携情報を削除しても問題ありません

トークン転記ミスの問題と思い込みました。また、もしくはURLがタイプミスしているのか?Authorizationのタイプミスか?・・・・全く解決せず。

■修正後(1時間睨めっこした後)

#Line 通知プログラム
import requests

token = "*** ここは 非公開 です、 ご自身のトークンを入力ください ***"

auth={ "Authorization" : "Bearer "+token}
content={"message":"こんにちは"}

result = requests.post(url, headers=auth, data=content)
print( result )

こちらが修正後です、何が変わったでしょうか?間違い探しゲームができそうです(笑

原因は、「Bearer 」の部分でした、こちらに半角スペースのコードがあるかないかです。

修正前:"Bearer"

修正後:"Bearer " ★半角スペース有り

↑原因はこれでした。

この部分を修正するとあっさりLine通知することができました。もし私と同じことでハマる方がいたらぜひお試し下さい。