dm.linov
(Dmitry)
2020 年 1 月 25 日午後 4:14
1
私は、ヘルプデスク(YouTrack)から Discourse へサポートフォーラムを移行しています。
API を使用して以下の処理を行いたいと考えています。
YouTrack からユーザー(名前、ユーザー名、メールアドレス)を取得し、Discourse 上で同様のユーザーを作成する。パスワードは設定しないこと。
これらのユーザー全員に、同じユーザー名とメールアドレスを使用して Discourse へのサインアップ招待を送信する(新しいパスワードを作成してもらうため)。
YouTrack から特定のトピック、添付ファイル、コメントを取得し、Discourse 上で同様に作成する。
そのためには、トピックやコメントの著者として設定できるように、同じユーザーが Discourse 上に存在している必要があります。これは、招待を受けた後にユーザーが Discourse にサインアップしたかどうかに関わらず、必ず行う必要があります。
課題:
a) API ドキュメントによると、ユーザー作成時に「password」フィールドが必須となっています。これを回避する方法はありますか?
b) API を介して作成されたユーザー(既にその名前でトピックがいくつか存在しているが、確認もパスワード設定もされていない状態)のステータスはどのようにすべきでしょうか?
pfaffman
(Jay Pfaffman)
2020 年 1 月 25 日午後 5:49
2
API ではなく、インポートスクリプトを使用してユーザー、カテゴリ、トピック、投稿を作成することをお勧めします。
すべてのユーザーに個別にメールを送る最適な方法については確信が持てませんが、インポートスクリプトでユーザーを有効化し、要約メールを受信できるようにする一つの方法があります。その要約メールには、新しいフォーラムへのアクセス方法に関する手順を含めることができます。
dm.linov
(Dmitry)
2020 年 1 月 25 日午後 6:01
3
そのようなスクリプトはどのように動作するのでしょうか?直接データベースと連携するのですか?
pfaffman
(Jay Pfaffman)
2020 年 1 月 26 日午後 1:30
4
scripts/import にあるインポートスクリプトをご覧ください。
dm.linov
(Dmitry)
2020 年 1 月 27 日午後 4:39
5
あなたのこのスクリプトを使ってみました。https://github.com/pfaffman/discourse-user-creator 確かに機能しているようですが、エラーメッセージが出続けています:
./create-user 'Test User Four' me@[domain] test4 41 default
Creating user: test4 user test4 created. . . Adding to group 41. . . {"errors":["You supplied invalid parameters to the request: usernames"],"error_type":"invalid_parameters"}
何が間違っているのか分かりません。また、グループとパスワードを設定しないことは可能でしょうか?
pfaffman
(Jay Pfaffman)
2020 年 1 月 27 日午後 4:42
6
私は詳しくありませんが、無効なグループ番号を設定してエラーが発生しているように見えますね?ユーザーを追加しているなら、グループがまだ設定されていないのかもしれません。
スクリプトを変更してパスワードを設定しないようにすることも可能だと思いますが、誰も知らないランダムなパスワードを設定するのは、パスワードなしと実質的に同じです。
カスタマイズが必要で予算がある場合は、今日中にそれに対応できるかもしれません。
dm.linov
(Dmitry)
2020 年 1 月 27 日午後 4:50
7
グループ番号は正しいです。/groups.json から取得しました。とにかく、今の目標は、利用可能なあらゆるツールを使って解決策を見つけることです。それでも、ご提案とご支援をいただき、ありがとうございます!
pfaffman
(Jay Pfaffman)
2020 年 1 月 27 日午後 6:17
8
ふむ、もしかしてその API が変更されたのかもしれません。今ではグループ名を受け取るようになったと思います。何か見つけたら、プルリクエストを提出してくださっても構いません。
これについて詳しく確認する前に、やらなければならないことがたくさんあります。
dm.linov
(Dmitry)
2020 年 1 月 27 日午後 6:38
9
pfaffman:
グループ名が必要になると思います。
いいえ。ID の代わりにグループ名を使用すると、
{"status":404,"error":"Not Found"}
というエラーが返されます。
また奇妙なことに、エラーメッセージは user test6 created. . . Adding to group の後に表示されるものの、実際にはユーザーが作成されていません。
pfaffman
(Jay Pfaffman)
2020 年 1 月 27 日午後 9:52
10
ふむ。確かに、このスクリプトは API のユーザー名とキーを URL に含めるのではなく、ヘッダーで送信するように更新する必要があります。2 年前には動いていたと確信していますが、当時の私よりも経験が 2 年少ない人が書いたようです
ユーザーが実際に作成されたかどうかを確認するエラーチェックが全くないので、私が手掛けるならそこは修正します。
グループが何も存在しない場合、ユーザーをグループに追加しようとする処理をスキップするようです。
こんにちは、Dmitry (@dm.linov ) さん!
Confluence、YouTrack、Discourse 間を移動する方法について検索していたところ、このトピックを見つけました。
YouTrack から Discourse への移行について、主なポイントを共有していただけますか?その理由はコスト、パフォーマンス、検索の問題などでしょうか?
dm.linov
(Dmitry)
2021 年 9 月 25 日午後 5:55
12
イワンさん、こんにちは。
ご指摘の2点とも事実です。私たちは、世界中の誰もが自社の素晴らしさを確認できるよう、オープンなフォーラムでお客様をサポートしたかったのです その点において、YouTrackはいくつかの理由から適したツールではありませんでした。その理由の一つに、ユーザー数に応じた課金モデルがあることも挙げられます。
現在の構成は以下の通りです。
サポート、機能リクエスト、ディスカッションには Discourse を使用。ウェブサイトの「お問い合わせ」フォームからの問い合わせも Discourse 上で自動的に新しいトピックとして作成され、「ステージング」ユーザーも API を通じて自動生成されます。
開発タスク、バグ、その他の課題の管理には YouTrack を使用。
一般的なドキュメントには Confluence を使用。特定のユースケースを説明する一部の記事は、Discourse にも手動で公開されています。
また、Discourse を社内ブログとしても活用しようと試みましたが、後に Hashnode の方が好ましいと判断しました。
ドミトリー、ありがとうございます。この経験は私たちにとって役立つでしょう。
現在、Confluence からのドキュメント移行を検討しています。Confluence は検索機能が弱く、費用も高いためです。YouTrack には Markdown をサポートするナレッジベース機能があり、インポートも簡単で、検索機能も許容範囲です。YouTrack は当社のバグトラッキングシステムであり、引き続き使用します。
もし YouTrack のナレッジベースが生産環境で遅いことを確認できれば、使用を見送ることも検討できます。
Discourse は第3段階のサポートシステムとして利用されています。主な機能は、顧客の解決策の保存とベストプラクティスの共有です。残念ながら、Discourse を顧客向けに利用するのは困難です。顧客サポートチームがサービスデスクを使用しているためです。また、顧客ごとに数百のプライベートカテゴリを作成するのは非常に困難です。
とにかく、Discourse は全体的に素晴らしいです 。
dm.linov
(Dmitry)
2021 年 9 月 25 日午後 7:50
14
私の知る限り、私たちはこれまでYTナレッジベースを使用したことがないため、それについてお話しすることはできません。
Confluenceについては、現在代替手段を探していますが、急いではいません
blake
(Blake Erickson)
2021 年 9 月 26 日午後 5:37
15
dm.linov
(Dmitry)
2021 年 9 月 26 日午後 5:49
16
@blake まだですが、確認いたします。ありがとうございます!