Q&A

50人未満にナローキャストメッセージを送る方法

前提・実現したいこと

50人未満にナローキャストメッセージを送信したいです。

  • line-bot-sdk-pythonを使用しております。
  • こちらのドキュメントには以下の場合は送信対象が50人未満でも送信できると書いてあります。
    • ・「LINE Official Account ManagerやMessaging APIで作成したユーザーIDをアップロードする際に、属性データを使用せずにオーディエンスを使用した場合は送信できます。」
    • ・今回は、LINE Official Account Managerから私一人分のユーザIDを記入したファイル( audience.txt )をアップロードしました。ちなみにLINE Official Account Managerからのアップロードする際の画面には属性データを指定するような項目は見当たりませんでした。
    • ・LINE Official Account Managerの「オーディエンスタイプ」は「ユーザーIDアップロード」を選択しています。
    • ・LINE Official Account Managerのオーディエンスのステータスは「有効」になっています。
  • ・同じプログラム内でプッシュメッセージ、ブロードキャストメッセージ、リプライメッセージは問題なく使えています。

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

AttributeError: 'NoneType' object has no attribute 'as_json_dict'

該当のソースコード

# ナローキャストを送信
elif event.message.text == "ナローキャスト":
		line_bot_api.narrowcast(
				messages=TextSendMessage(text='Hello World!'),
				recipient=AudienceRecipient(group_id=604xxxxxxxxxx),
				filter=None,
				limit=None
		)

group_id は一部 x で置き換えています(置き換えている x には全て数字が入っていました)。

試したこと

  • filterlimit を外しても結果は変わりませんでした。
  • recipient を外しても結果は変わりませんでした(こちらの記述「省略すると、LINE公式アカウントを友だち追加したすべてのユーザーが送信対象になります。」から試してみました)。

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

その他、確認に不足している情報ありましたらご指摘いただければ幸いです。 よろしくお願いいたします。

  • 0
  • 2
  • 1041
  • twitter facebook

ksyt様

ご回答ありがとうございます。

ご案内いただいたように filter=Filter(None), limit=Limit(None) と指定することでナローキャストメッセージを送信することができました。 大変助かりました。ありがとうございました。

  • 0

(質問の内容がタイトルと関係ないような気がしますが...) None.as_json_dict() が呼ばれているのが問題なので、filter=Filter(...), limit=Limit(...) とすると動くと思います。

  • 1

関連する質問

    関連する質問はありません

本当によろしいですか? question.vm