フレンズ検索アプリを作るスレ
開発予定地
https://japari-search.netlify.com/
フレンズ登録フォーム
https://goo.gl/forms/hU548UrMOMSChs9v2
仮一覧
https://docs.google.com/spreadsheets/d/1A_U2n4puTNDb_6ZC3zjpHybOnxzWT0uniPxliy3ybPc/edit?usp=sharing
全てはこのレスから始まった。
そろそろフレンズ検索ソフトが欲しいな、作ろうかな。
(https://zawazawa.jp/minmi/topic/193
のレス377より)
で、実際に作りたいと思います。
現在Fusion Tableとgoogle apps scriptによる
webアプリケーションとしてのリリースを検討しています。
意見よろしくです。
通報 ...
>>
px
#
埋め込み先の背景色と馴染まない場合に指定して下さい。通常は埋め込み先の背景色をそのまま利用します。
px
wikiwikiスタイルでは文字サイズやフォントが自動的に調整されます。
次のコードをWIKIWIKIのページに埋め込むと最新のコメントがその場に表示されます。
// generating...
おしらせ
タイトル背景・アイコン募集中
🐉
フレンズピックアップ企画
週間フレンズ+月刊けものを統合し、総合ファンスレとしてリニューアル
詳しい事はスレで
秋イベント
けもがたり
変則隔週日曜日 22:00~23:00 けもがたりの場所
11・12月の予定 🐸<もう今年も終わりでありますなぁ
11/3 黄色い生き物の話 モンキチョウ、キビタキ、ウデフリツノザヤウミウシなど
11/17 赤い生き物の話 アカゲザル、タンチョウヅル、ベニザケ(繁殖期)など
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
12/1 緑・青色の生き物の話 ミドリムシ、ウグイス色のメジロ、アオツラカツオドリ、マルタタイガーなど
12/15 雪と氷と生き物と ユキヒョウ、ニホンザル、アザラシ、ワカサギなど
12/29 これまでのけもフレとこれからのけもフレ プロジェクト10周年!
けもがたり保管庫
(けもがたり過去ログまとめ)
内部リンク
外部リンク
日記
2024/9/9
久々の日記更新。この前三次コラボに行ってきました。親になると子供目線で施設を見たり色々と気付きが出てきますね。
2024/12/15
熱中症になった
タグリスト
けものフレンズ (399) ユーザー参加型 (230) ネタ (183) たのしースレ (159) 雑談 (136) 二次創作 (133) 画像 (113) 協力 (109) クソスレ (107) 動物 (105) 神スレ (98) ファンスレ (91) 自然 (91) 誰得 (91) 考察 (88) けものフレンズ3 (87) どうしてこうなった (86) けものフレンズ2 (85) 豆知識 (83) イラスト (81) 楽しい地獄 (79) 癒し (78) SS (73) 動画 (73) 優しい世界 (71) ココスキ (70) アニメ (68) 歴史 (68) ゲーム (66) アプリ (63) 元動物 (59) 投稿主はIQ30以下 (59) 笑い (57) クロスオーバー (54) 質問 (51) 相談 (47) 総合 (43) 感想 (41) 音楽 (41) けものフレンズぱびりおん (33) 閲覧注意 (33) イベント (32) コラボ (32) 安価 (30) 公式コンテンツ (29) みんみ教 (26) 日記 (24) 技術 (20) 声優 (18) けもV (16) オリフレ (16) 管理用 (16) アンケート (13) ジャガーマンシリーズ (10) 実況 (10) 書籍 (10) ちくたむ (1)
じゃあ自分もア行やってたんで、そのままで
APIの規格を策定せねば
>> 87ことむさしさんどのようなAPIがやりやすいですかね。
{項目名=値,項目名=値,項目名=値,…}を入力して
{名前,名前,…}を出力するって形式でいいですか?
他にご所望の関数ってありますか?
リクエストは検索条件のパラメータ(指定なしの場合はパラメータなし)で、レスポンスは配列で中にオブジェクトでフレンズの情報を持つ方法がいいと思います。
リクエストは具体的には以下のような感じです。
レスポンスは具体的には以下のような感じです。
あとリクエストはjsonでいいでしょうか?
jsonで渡すとGASでjsonをオブジェクトに変換しないといけないと思います。
クエリパラメーター(よく
http://hoge.com/user?id=10
みたいにurlの後ろに付いている?以降のパラメーターです。)でやった方がGAS側でオブジェクトに変換してくれるみたいなのですが、いかがでしょうか?これはサーバー側の実装に関わるところなので、ひねもすさんにお任せします。
私の方はどちらでも問題ないです。
そうですね、JSONでお願いします。
パラメータの名前はサーバサイドでは
名前name
媒体oldapp,comic,stage,stageeqlv,apvilion
アニメの項目AOP,A1,A2,A3,…A12
ショートアニメbasuteki,keiba,fukkura,anisama
能力swim,fly
旧属性oldapptype
分類liffeclass,lifeorder,lifefamily,lifegenus
となっております。
できる/登場した=1,できない/登場してない=-1としていただけるとありがたいです。
オブジェクト配列了解しました。
そういやidふってなかったけど、必要ですかね。
名前が確実に被らないので大丈夫と思ったりもしますが。
>> 122falseは一般的には0を使うと思うですが、-1でないといけない理由はありますか?
特にないなら0がいいですね。負の数はなるべく使わない方が安全です。
>> 123なくてもいいですが、あった方が管理しやすいと思うのですがどうでしょうか?
一意に特定出来ればいいので、DBに入った順くらいの認識でいいと思います。
変更フォーム作成した時に名前だとうちミスがあることを考えてidあった方がいいかなと思いました。
そういう意味ではクライアントのリクエストに入れる必要はないですね。
あと、リクエストにjson使う場合だとメソッドはPOSTなので、気をつけてください。
なるほど、不明=0にしてたんですよね。
クエリで送られる際は不明は省略されますからtrue = 1, false = 0でお願いします。
あとid付与しときます。
>> 130すみません。さっき修正して、
なので、idはこちらへのリクエストには不要です。
管理的にあると便利だと思うのでそれに関してはひねもすさんの方で決めてしまって大丈夫です。
なるほど、不明は-1が一番多いような気がしますね。
確か今フォームには不明が選べるので検索結果で返すことになると思うのですが、どうしますか?
慣例に則ったものにした方が安全ですね。
true = 1 false = 0 unknown = -1
でお願いします。
現在データベースに上がっているものは書き直しとなりますが
元のスプレッドシートが残っているので
データベースを一回消去して一括挿入しときますのでご安心ください。
>> 136
了解しました。
ちなみにフロントはjqueryとかで作った方がいいでしょうか?
他の人でもメンテナンス出来るようにと考えるとjqueryがいいかなと考えています。
メンテナンス性の高さ大事なので
jqueryでお願いします!
了解です。
以下のコンテンツに登場したか? [ガイドブックn巻]
とかがあってもいいのでは?
いや、重複して登場することはないからガイドブック何巻に登場したか?のほうがいいですかね
なるほど、追加要素は別途フォーム作ろうかな。
他に追加したい要素ありますか?(入力が大変になっていく気がするけど)
あと、ある程度出来上がったら、変更用フォームも作らねば。
表で[不明]ってなってるところを一覧で出してわかる人 が訂正するシステムとか…いいんじゃないでしょうか
せやな、
ところでアテソーベソキソとは一体…
手が滑って打ち間違えました
なるほど、
検索時に混乱するから残しておくね❤そ、そうでありますかー
冗談です。真面目なデータベースにしないと利用者に怒られるので消去しときますね。おふざけ要素入れたデータベースを別に作っとこうかな。
そのときになったらまたよろしくです。
追記
てっきり動物名の方に入れたのだと見間違えました。セーフです。
ごめんなさい、アカウント名が動物名だったので
フレンズ名と登録者名で混乱しちゃいました。
あとで復旧しときます。
ああ、そういう...
検索時に混乱するってなんだ?って思ってました
アデリーちゃんのデータベースは既に書かれてたのですよ
【事前連絡】
データの更新、書式の変更などがございますので近いうちにフォームを一回閉じて
作業します。ご理解願います。
了解です
(そういえばHAW-206はエイチエーダブリューだったか。五十音順ミスったかな)
ストーリー中ではハウちゃんでしたけどね…判断が難しいところです
まあ結局全部データベースに入れるんですし気にすることはないかと
確かに読みは関係ないですからね。
まあ、いっか!(自棄)
なんかコードが出来上がっちゃったんでいまちょっと閉鎖します。
再開しました!
途中で44個のリクエストをサーバちゃんに送ったら
多すぎるよ!って怒られた。
無料だと制限辛そうですね。
うん、まあ流石にfor文回して一気に入れるのは無理があったので、
10個ずつ小分けしました。
今回の更新で
true = 1 false = 0 unknown = -1となり
アテソーベソキソ名義の登録内容も復旧
idも入れた順に付与するように設定
めでたしめでたし
https://qiita.com/minodisk/items/934903a937813fcf1e30
によると
1日25,000 リクエスト数/日
ざっくり25000回検索できることですな。
他の機能でゴリゴリ使わなければ、ですが。
GASのurlfetchは20000回らしいので問題ないですね。
それ超える規模のアクセスあったら、我々ではどうしようもないですし。
大喜利大会が終わったら作業再開します。
(帰省中なんですが、ブルーライトカット眼鏡持ってき忘れたから
パソコン作業がつらいぜ。)
作業再開!関数鋭意制作中
検索関数の名前はjaparesearch()としました。
Japariじゃないんですか?
japari + researchで
iとeどっちにするか迷ったんですがiの方がいいですか?
japari + search = Japarisearch
の打ち間違いかと思ったのですが、researchだったんですね。
そっか、researchだと研究になって意味が変わってしまう。
Japarisearch()
にします。
>> 120【ムサシさんへ業務連絡】←書いとくべきでした。
なんか関数完成したっぽい。明日体裁整えて公開します!
https://script.google.com/macros/s/AKfycbww1A3I6qIiJZ4eT6Hy-dlCGTtifADzVkTD5YxmJ8D2iX7BBS8p/exec
で公開しました!不具合は随時修正していきます。
”needs your permission to access your data on Google”の”data on Google”って具体的にどんなことなの?
およ?調査します。
そのURLを踏んだ後、そのメッセージが出てgoogleアカウントのサインインが求められる。
サインインしても繰り返しメッセージが表示されて抜け出せない…
ちなみにiOS safariです。
上に同じくです
Windows10 Chromeです
ああ、すみません。この関数はそのままでは使えないのです。
ムサシさんが担当するwebpageのjavascriptから呼び出されて使えるようになりますので
しばらくお待ちください。
本当に関数だけが設置されている状態なんです。(表示方法とかそういうものが一切ない)
そういうことだったのか…
もうできたのかと思って舞い上がってしまったよよよ
誤解させてすみません。
今、段階は「検索ページの作成」と「関数の拡張」に移った、って感じです。
全フレンズデータ入力も含めると完成は結構後になりそう。
>> 162
今確認しましたが、公開設定が出来ていないかもしれません。
APIとして叩けないです。
少なくとも僕の方では確認できませんでした。
https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=ja
これでご自身でapi叩いてみてもらえますか?
下の画像のように、メソッドをPOSTにしてurl入れるだけで大丈夫です。
google driveがうんちゃらとかhtmlで帰ってきたら、おそらくうまくいっていないです。
ちなみに正しく公開設定出来ているのになぜか動かない場合は、私も以前同様のことがあり、その時はスクリプトを新しく作り変えたらうまくいきました。
ちなみに私の方は全く手をつけていないので、もう少しお待ちを。。。
趣味の話ですので気長になさってください。
ちょっとAPI確認してきます。
役に立ちそうな情報を発掘(メモ代わり)
http://ytyaru.hatenablog.com/entry/2017/01/05/000000
ただいま実験中、APIが使えそうになったら連絡します~。
テストです(協力お願いします)。このリンクをふんだら表示の先頭に
[{"name":"サーバルキャット"
ってなりますか?ついでにいうとOP登場フレンズだから「めぇ探偵」とか「博士」が来るはずです。
https://script.google.com/macros/s/AKfycbww1A3I6qIiJZ4eT6Hy-dlCGTtifADzVkTD5YxmJ8D2iX7BBS8p/exec?AOP=1
うまく表示されるなら、あとは一行コメントアウトするだけで
本格的に動けるようになるはず・・・。
「はず」が多いな~
[{"name":"サーバルキャット","oldapp":"1","comic":"1","stage":"1","stageeqlv":"0","pavilion":"1","AOP":"1","A1":"1","A2":"1","A3":"1","A4":"1","A5":"1","A6":"1","A7":"1","A8":"1","A9":"1","A10":"1","A11":"1","A12":"1","basuteki":"0","keiba":"1","fukkura":"0","anisama":"1","swim":"0","fly":"0","oldapptype":"パッション","lifeclass":"哺乳類","lifeorder":"ネコ","lifefamily":"ネコ","lifegenus":"ネコ"},{"name":"アフリカオオコノハズク","oldapp":"1","comic":"0","stage":"0","stageeqlv":"0","pavilion":"1","AOP":"1","A1":"0","A2":"0","A3":"0","A4":"0","A5":"0","A6":"0","A7":"1","A8":"0","A9":"1","A10":"0","A11":"0","A12":"1","basuteki":"1","keiba":"0","fukkura":"0","anisama":"1","swim":"0","fly":"1","oldapptype":"クール","lifeclass":"鳥類","lifeorder":"フクロウ","lifefamily":"フクロウ","lifegenus":"コノハズク"},{"name":"アミメキリン","oldapp":"1","comic":"0","stage":"0","stageeqlv":"0","pavilion":"0","AOP":"1","A1":"0","A2":"0","A3":"0","A4":"0","A5":"0","A6":"0","A7":"0","A8":"0","A9":"0","A10":"1","A11":"0","A12":"1","basuteki":"0","keiba":"0","fukkura":"0","anisama":"1","swim":"1","fly":"0","oldapptype":"ピュア","lifeclass":"哺乳類","lifeorder":"鯨偶蹄","lifefamily":"キリン","lifegenus":"キリン"},{"name":"アメリカビーバー","oldapp":"1","comic":"0","stage":"0","stageeqlv":"0","pavilion":"1","AOP":"1","A1":"0","A2":"0","A3":"0","A4":"0","A5":"1","A6":"0","A7":"1","A8":"0","A9":"0","A10":"0","A11":"0","A12":"1","basuteki":"0","keiba":"0","fukkura":"0","anisama":"1","swim":"1","fly":"0","oldapptype":"パッション","lifeclass":"哺乳類","lifeorder":"ネズミ","lifefamily":"ビーバー","lifegenus":"ビーバー"},{"name":"アリツカゲラ","oldapp":"1","comic":"0","stage":"0","stageeqlv":"0","pavilion":"0","AOP":"1","A1":"0","A2":"0","A3":"0","A4":"0","A5":"0","A6":"0","A7":"0","A8":"0","A9":"0","A10":"1","A11":"0","A12":"1","basuteki":"0","keiba":"0","fukkura":"0","anisama":"1","swim":"0","fly":"1","oldapptype":"ピュア","lifeclass":"鳥類","lifeorder":"キツツキ","lifefamily":"キツツキ","lifegenus":"ハシボソキツツキ"},{"name":"アルパカ・スリ","oldapp":"1","comic":"-1","stage":"-1","stageeqlv":"-1","pavilion":"1","AOP":"1","A1":"0","A2":"0","A3":"1","A4":"0","A5":"1","A6":"0","A7":"0","A8":"0","A9":"0","A10":"0","A11":"0","A12":"1","basuteki":"0","keiba":"0","fukkura":"0","anisama":"1","swim":"0","fly":"0","oldapptype":"クール","lifeclass":"哺乳類","lifeorder":"鯨偶蹄","lifefamily":"ラクダ","lifegenus":"ビクーニャ"}]
[{"name":"サーバルキャッ
ト"
となってます。
私の方でも見れましたー
よし!それでは、JSON形式に切り替えます。
これで関数として使えます(予定)
>> 162と一緒です。
ご協力ありがとうございました!
>> 181
今度は別のエラーが出ているみたいです。
すみません。オブジェクトをJSONに変換する処理を忘れてました。2時間内に修正します。
追記
return JSON.stringify(Data);に書き換えました。
現在クエリパラメーターで受け付けているのですが、それで大丈夫でしょうか?
web系はそこまで得意でないので用語が色々怪しくてご迷惑お掛けしております・・・。
了解です、家帰ったら確認してみます。
クエリパラメータでも問題ないです。
>> 184
今再度確認したのですが、前と同じエラーが出るみたいです。
ひねもすさんの方では確認できましたか?
んー、同じエラーを吐きますねぇ。サポートされている戻り値ってなんでしょうか?
調べてみます。
ちなみにコード変えるたびに公開して、バージョンをあげていますか?
GASはバージョンあげないと、公開用のコードは更新されないみたいです。
もう更新しまくってver11まで来てます(泣)
なるほど。。。
一回コード見せてもらってもいいでしょうか?
多分戻りが違うからうまく動かないのだと思います。
GASの場合はStringなら
ContentService.createTextOutput
で戻りを返さないといけないはずなので。気になるところはまだあるけど、まずはこれを試してみてください。。。
導入しました。いかがでしょうか?
取得出来ました!
ふぅ、良かったです。
ちなみに気になったので今後のことを考えて2点だけ。。。
1.
ここはなぜ一回stringにしたものを戻しているのでしょうか?
BdataのままRdataに入れて大丈夫だと思います。
2.whileとforどちらか統一した方がいいと思います。whileの方が無限ループバグが起こりやすいのでforを個人的にはおすすめします。
1.
Bdataで突っ込んだら参照渡しの関係でデータが狂うので、色々やった結果こうなりました。
2.
forで統一しときます。
なるほど。
Bdataの初期化をwhileの中で行えば問題ないはずです。
了解、修正して正常動作を確認しました。
よかったです。
ちなみに?name=1にするとエラーが返ってきますがこれは今のところこの状態で問題ないのでしょうか?そもそも文字列だから1じゃないか。。。なんでもないです。。。
今日の作業
サ行のジャガーまで、シから始まるフレンズって多いのね。
お知らせ
効率化のためメンテナンスを行います。
しばらくフォームはご利用できません、ご了承ください。
相談
前あげていただいたフレンズ一覧から
ざっくりとしたデータの代入をすることが可能になりまして、
フレンズの情報を旧アプリ以外に登場したかを「登場していない、できない」に固定
旧アプリの項目についてRGBの場合「登場した」、Nの場合「登場していない」に設定
生物分類を「未登録」に固定する感じで
後から正しいデータに書き換えでいいですか?
つまり、細かい情報は固定にして一旦先にデータだけ入れて、細かい情報は後で書き換えていくということでいいでしょうか?
私はそれで問題はないと思います。(時間がなくて全く登録作業出来てない私がいうのはなんですが…)