Q&A

push通知は正常に届くunique user idが、オーディエンス作成時には無効扱いになる

前提・実現したいこと

Messaging APIで、オーディエンス作成で正常に動作しません。 ユーザーIDアップロードを使用しており、自分自身を1人アップロードしようとすると無効になります。 もう1人公式アカウントに追加して、2名でも無理でした。 ちなみに、テスト用に作成した公式アカウント及びAPI接続のテストではうまく行っています。 さらに確認のため、そのユーザーIDを用いてpushメッセージを送信しましたが、受信できました。 グループメンバーのプロフィール情報を取得する から、友達登録されていることは確認もしています。

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

Messaging APIの設定が間違えている可能性があるので、Official manager accountでCSVアップロードを試みました。 2アカウント別々で1つづつ試しましたが、いずれも無効でエラーが出ます。 https://gyazo.com/14b968078aa623c9190f83d3e93e5fbf

API経由の場合は、対象アカウント数が0のエラーです。

該当のソースコード

試したこと

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

  • 0
  • 11
  • 2518
  • twitter facebook

Yazakiさん、ありがとうございます。 原因はそれのようでした。無事、CSVでのアップロードはうまく行きました! 何度もお調べくださって誠にありがとうございました!

  • 0

Excel for Macでcsvを保存すると、UTF-8 (with BOM) で保存されるケースがあるみたいです。 参考:https://qiita.com/s_satoh/items/2e1c81152db19fcef9bf

もしこの環境でcsvファイルを作っているようでしたら、BOMが付かないように保存するか、Excelを諦めてテキストエディタでtxtファイルを作ってみるのはどうでしょうか。

  • 0

テキストファイルがUTF-8 with BOMで保存されているとエラーが出そうです。

  • 0

はい、試したのは1件でしたね。

  • 0

不思議ですねぇ。

LINE Official Account Managerで試してみました。

U30.....,Uc82.....

このようにカンマ区切りでユーザーIDを並べたら「1行目に無効なフォーマットのユーザーIDが含まれています。」というエラーメッセージを表示させることはできました。

U30.....
Uc82.....

改行区切りなら大丈夫でした。

"U30....."
"Uc82....."

ユーザーIDをダブルクォーテーションで囲むと、「エラーが発生しました。もう一度お試しください。」でした。

でも1件でもダメなんですよね。

  • 0

そもそも、APIに問題がある可能性があるので、初めの投稿に戻りますが、 "Official manager accountでCSVアップロードを試みたがうまくいかない”状態です。

API、元から https://developers.line.biz/ja/reference/messaging-api/#create-upload-audience-group を使用しています。

  • 0

不思議ですね。

https://developers.line.biz/ja/reference/messaging-api/#create-upload-audience-group-by-file

を使っているんですよね。

https://developers.line.biz/ja/reference/messaging-api/#create-upload-audience-group

こっちは試してみましたか?

  • 0

ありがとうございます。 はい、確認のため、自身のユーザーIDに関しては、 LINE Developersコンソール > Messaging APIチャネル(テスト用チャネル) > [チャネル基本設定] > [あなたのユーザーID] からも確認しました。 知り合いにも公式アカウントに登録してもらい、同様にユーザIDを取得したかったため、彼のはwebhookで取得しました。

彼のユーザーIDに対しても、csvでオーディエンスをアップするとエラーが出てしまいます。。

  • 0

それは不思議ですね。

私の方では、テスト用に作成したチャネルAに、2つのユーザーIDを登録したユーザーIDアップロード用のオーディエンスの作成に成功しています。

私の場合は、ユーザーIDをWebhookではなくて、LINE Developersコンソール > Messaging APIチャネル(テスト用チャネル) > [チャネル基本設定] > [あなたのユーザーID]で確認しました。

  • 0

Yuzakiさん、ありがとうございます。 テスト用に作成したプロバイダーは、全く別です。全く別であり、それぞれのプロバイダー内にチャンネル及び公式アカウントを作成してます。

テストはあくまでAPIの接続のために以前作成していたプロバイダーです。 もちろん、それぞれでユーザーIDが異なることも理解しています。

また、グループではなくLINE公式に直接メッセージをユーザーから送ってもらい、それをwebhookで受け取ったユーザーIDを記録しています。 そのIDをオーディエンスとしてアップするとエラーが出ます。

  • 0

以下のチャネルがすべて同じプロバイダーに入っているか確認してください。

  • 自分自身のユーザーIDを確認したチャネル
  • テスト用に作成したチャネル
  • pushメッセージを送信したチャネル

同一のLINEアカウントでも、プロバイダーが異なる場合はユーザーIDが違います。 つまり、あるチャネルAで取得したユーザーIDは、ほかのチャネルBでは使えません。

参照:https://developers.line.biz/ja/glossary/#user-id

ユーザーID プロバイダーごとにユーザーを識別するための識別子。1人のLINEユーザーは、プロバイダーごとに異なるユーザーIDを持ちます。LINEに表示されるLINE IDとは異なります。

ちなみに「グループメンバーのプロフィール情報を取得する」には、「LINE公式アカウントを友だちとして追加していないユーザーや、LINE公式アカウントをブロックしているユーザーのプロフィール情報も取得します。」と書いてあるので、プロフィール情報が取得できることは、友だち追加されている証拠にはなりません。

  • 0
Are you sure? question.vm