自身でした質問への回答や、回答の際に引用したサイト等、ふと確認したいタイミングがあるのですが、現在の teratail の検索窓では、そういった使用方法は想定していないようです。
自身が関わった質問(質問した/回答した/コメントした/評価した)に対しての検索を実施するにはどのように行うと、効率よく情報を引き出せるでしょうか?
今は、google でsite:teratail.com
を指定して、思い出せる範囲のキーワードで検索しているのですが、あまり効率の良い結果は得られていません。
うまい方法があれば、ご教示意いただきたく、お願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
teratailにはAPIがあるので利用されてはいかがでしょうか?
ドキュメントを見たところ、質問内容に近いことができそうです。
http://docs.teratailv1.apiary.io/#introduction
curlでAPIを叩き、jsonをパースするだけなのでここで培った知見が役に立つのではないでしょうか?
あとで読む系のPocketやinstapeperのAPIと連携させればURLのクリップが自動化できたり
webクリップのEvernoteのAPIと連携して、過去の資産を全部ノート化するのも面白そうです。
投稿2017/09/14 14:58
総合スコア109
0
TeratailAPIのお題が少し面白かったので、過去の自分の回答から特定のワードを含む質問のIDを取得する機能をPHPで作ってみました。
もうちょっと作りこめば、それなりに使えるものになるかもしれません。
自分以外の人も検索できるようにしたり、質問も検索したり、回答内容の一部を表示したり…
パパっと作ったので、何か突っ込みがあればコメント頂けると嬉しいです。
###リクエストページ(検索ワード入れて検索)
HTML
1<html> 2 <form method="POST" action="searchMyAnswes.php"> 3 <input type="text" name="searhWord"> 4 <input type="submit" name ="sub"> 5 </form> 6</html>
###APIを使って過去の自分の回答を検索する。
PHP
1<?php 2 if (!isset($_POST['searhWord']) || trim($_POST['searhWord']) === ''){ 3 echo '検索ワードを入れて。ブラウザバックで戻って'; 4 return; 5 } 6 $searchWord = $_POST['searhWord']; 7 $getTeratailAPI = new getTeraTailAPI(); 8 $getTeratailAPI->getMyAnswers($searchWord); 9 10 class getTeraTailAPI 11 { 12 /*** 13 * APIを使って自分が回答した内容を検索する 14 */ 15 public function getMyAnswers(String $searchWord){ 16 $resultArray = $this->callAPI(); 17 $meta = $resultArray['meta']; 18 //リクエストに失敗したら処理終了 19 if($meta['message'] != 'success'){ 20 echo $meta['message']; 21 return; 22 } 23 $returnQuestions = $this->searchWord($resultArray['replies'], $searchWord); 24 //回答を100件以上していたらページネーション 25 if($meta['hit_num'] > 100){ 26 $page = ceil($meta['hit_num'] / 100); 27 for($i=2;$i<$page+1;$i++){ 28 $resultArrayAdds = $this->callAPI($i);//2ページ目以降 29 $returnQuestionsAdded = $this->searchWord($resultArrayAdds['replies'], $searchWord); 30 $returnQuestions = array_merge($returnQuestions, $returnQuestionsAdded); 31 } 32 } 33 //画面に質問番号を一覧で表示 34 foreach ($returnQuestions as $value) { 35 echo $value.nl2br("\n"); 36 } 37 } 38 /** 39 * 実際にAPIを実行する処理。取得結果を配列にデコードして返却 40 * @param type $page 41 * @return type APIをJSON_DECODEした結果 42 */ 43 private function callAPI($page=0) { 44 $username = 'motuo'; 45 $access_token = 'your access token'; 46 $url = 'https://teratail.com/api/v1/users/'. $username .'/replies?limit=100'; 47 if($page){ 48 $url .= '&page='.$page; 49 } 50 $curl = curl_init(); 51 curl_setopt($curl, CURLOPT_URL, $url); 52 curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); 53 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 54 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 証明書の検証を行わない 55 curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$access_token)); 56 57 $result = curl_exec($curl); 58 curl_close($curl); 59 return json_decode($result,true); 60 } 61 /** 62 * 配列内から検索ワードに該当する質問IDを配列で返却 63 * @param array $replies 64 * @param String $searchWord 65 * @return array 66 */ 67 private function searchWord(Array $replies,String $searchWord) { 68 $questions = []; 69 foreach ($replies as $value) { 70 if(strpos($value['body'],$searchWord)){ 71 array_push($questions, $value['question_id']); 72 } 73 } 74 return $questions; 75 } 76 } 77?>
投稿2017/09/15 02:14
編集2017/09/15 02:30総合スコア3027
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
御自身が関わっておられる回答であれば、御自身のIDで検索すれば抽出可能です。
タグで抽出したいときは、Myタグなどの何らかのタグをクリックすれば抽出されます。
但し、タグはフィルタリングだけで、キーワード検索の対象ではないようです。
その他には、御自身の回答の隅やコメントにでも検索したいキーワードをMyルールで入れておくなど。
自分にとっての重要度なんか良さそうですよね。A,B,C,S,S+とか。
書き忘れてましたが、クリップは当然ご存知ですよね。
投稿2017/09/14 14:41
編集2017/09/14 15:28総合スコア25327
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/14 15:22 編集
退会済みユーザー
2017/09/15 03:50
2017/09/15 04:29
2017/09/15 04:36
2017/09/15 04:55 編集
退会済みユーザー
2017/09/15 06:50
2017/09/15 06:57 編集
2017/09/15 06:57
2017/09/15 07:01
2017/09/15 07:05
2017/09/15 07:09
0
teratailの中で過去事例を探すよりも、
ふつうにインターネット上で有用な事例を探した方が楽に回答できること。
(Google先生、Qiita先生、などなど。)
有用な事例を見つけたときにwebブラウザのブックマークや、
ソーシャルブックマークサービスの類に登録したりしているので、
そこから引き出したほうが早いこと。
以上の理由から、
teratailに検索機能の高度化をそんなに求めてないです。
まぁ、ユーザーページ内
(例えば https://teratail.com/users/m6u とかって)
で検索できると面白いかもしれませんけど。
自分が楽に回答するための工夫まで、
teratailに求めないでしょう。
余談ですが、
掲示板開発質問ネタが後をたたないので、
鉄板回答まとめみたいなのを作っとけば、
ある種のそうにはヒットしそうですが。
投稿2017/09/15 01:04
編集2017/09/15 02:52退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/09/15 04:03
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/09/15 03:54