tag:crieit.net,2005:https://crieit.net/tags/Stripe/feed 「Stripe」の記事 - Crieit Crieitでタグ「Stripe」に投稿された最近の記事 2022-04-15T16:49:25+09:00 https://crieit.net/tags/Stripe/feed tag:crieit.net,2005:PublicArticle/18166 2022-04-11T23:43:19+09:00 2022-04-15T16:49:25+09:00 https://crieit.net/posts/Flutter-62543e877f391 Flutter用問い合わせフォームウィジェット&サービスを作った <p>Flutter用の問い合わせフォームのウィジェットを簡単に設置できるパッケージ及び連携サービス Contact Nite を作りました。</p> <p><a href="https://crieit.now.sh/upload_images/8c23e18a7a344fca6bd592674e642b446252e63476ec0.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8c23e18a7a344fca6bd592674e642b446252e63476ec0.png?mw=700" alt="card.png" /></a></p> <p>上記画像のように簡単なコードを設置するだけで、サービス上で設定した項目通りの問い合わせフォームウィジェットを表示することができます。また、<br /> 送信された問い合わせはサービス上で確認することができるようになっています。</p> <p><a href="https://crieit.now.sh/upload_images/6e2af66c610d88bc766649f72032893a6252ee397f453.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6e2af66c610d88bc766649f72032893a6252ee397f453.png?mw=700" alt="image.png" /></a></p> <p>サービス<br /> <a target="_blank" rel="nofollow noopener" href="https://contact-nite.com/ja">https://contact-nite.com/ja</a><br /> パッケージ<br /> <a target="_blank" rel="nofollow noopener" href="https://pub.dev/packages/contact_form">https://pub.dev/packages/contact_form</a></p> <p>無料プランもありますので気になる方は是非試してみてください。僕も自分のアプリに入れて試してみています。</p> <p>問い合わせが来るとメール及びSlack通知を行うことができます。そのうちサービス内で直接問い合わせ下ユーザーとやり取りができるようにしてみようと思っています。</p> <h2 id="技術的な話"><a href="#%E6%8A%80%E8%A1%93%E7%9A%84%E3%81%AA%E8%A9%B1">技術的な話</a></h2> <p>パッケージ自体は純粋なFlutterパッケージです。サービス側は今回 Next.js, PlanetScale, Cloud Run を利用しました。</p> <h3 id="PlanetScale"><a href="#PlanetScale">PlanetScale</a></h3> <p>丁度開発している途中で知った、MySQLサービスです。最近記事も書いたので良ければ見てみてください。</p> <p><a href="https://crieit.net/posts/MySQL-PlanetScale-Next-js-Prisma">サーバーレスMySQLのPlanetScaleをNext.js+Prismaで使ってみた</a><br /> <a href="https://crieit.net/posts/Prisma-PlanetScale">PrismaでPlanetScaleを使う時のエラーあれこれ</a></p> <p>ここ最近はずっとFirestoreを使ってサービスを作っていました。安くて容量が大きいとなるとこれくらいしかなかったためです。ところがPlanetScaleを知りそちらに乗り換えてみることにしました。とにかく容量が大きいというのが決め手です。本当はMySQLの方が好きなので僕にとっては嬉しいサービスです。</p> <p>まだリリースしたサービスで利用した経験が無いのでどうなるかわかりませんが、これから見ていこうと思っています。問題なければこれからの僕の定番になりそうです。</p> <h3 id="Next.js"><a href="#Next.js">Next.js</a></h3> <p>Next.jsで作っています。サーバー側もNext.jsのAPI Routesです。もうとにかく楽ちんですね、サーバーサイドとフロント側の連携とか、何も考えなくて良いというのは。仕事だと色々問題が出てくるのかもしれませんがとにかく個人で開発するものだと今はこれが楽すぎて他を考えられません。</p> <p>特に日本専用サービスとする必要もないためInternationalized Routingを使って日本語と英語の対応を行っています。</p> <h3 id="デプロイ"><a href="#%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4">デプロイ</a></h3> <p>Cloud Runを利用しています。最近こればかり使っているので元々持っている資産的に楽になってきたため他を考えられません。といいつつPlanetScaleを使っているのでDBまわりで悩まなくてもいいしHerokuとかで良かったかもしれません。</p> <p>push時に連動もできるのですが、自動テストはGitHub Actionsでやったほうが超簡単なため、push→GitHub Actionsでテスト→Cloud Buildでビルド&Runにデプロイという流れをとっています。DBのマイグレーションもCloud Buildでビルドしたイメージを利用して自動化しています。</p> <p>テストはJestによるシンプルなAPIのテストと、Cypressを使ったE2Eテストを行っています。Cypressはあまり使ってないですがCypress Dashboardと連携して動画も見れたりするの面白いですね。</p> <h3 id="メール"><a href="#%E3%83%A1%E3%83%BC%E3%83%AB">メール</a></h3> <p>SendGridです。Dynamic Templatesむっちゃ楽ちんですね。SendGrid上でメールの本文を調整して簡単に送信できます。ごちゃごちゃプログラムやDB上にテンプレートを定義しなくていいので良いです。</p> <p>あとはメール受信のhookを利用して、メールも見ずにサービス上だけでやり取りできるようにもしたいなと思っています。なんかできるっぽいので。</p> <h2 id="Flutter側"><a href="#Flutter%E5%81%B4">Flutter側</a></h2> <h3 id="多言語化"><a href="#%E5%A4%9A%E8%A8%80%E8%AA%9E%E5%8C%96">多言語化</a></h3> <p>ハマりどころとして、多言語化が結構複雑でした。パッケージを作成する場合一緒に作成されたサンプルプロジェクトと連携して動作させるのですが、そのプロジェクト内だとうまくいくのに、別途他のアプリに組み込んでみたらちゃんと言語が反映されないという問題が発生したりして手こずりました。</p> <p>ちなみにFlutterはVS Code拡張Flutter Intlを使うことで簡単にローカライズできるのですが、それも使えたようです。</p> <h3 id="Freezed"><a href="#Freezed">Freezed</a></h3> <p>Freezed普通に使えたので使っています。</p> <h3 id="テスト"><a href="#%E3%83%86%E3%82%B9%E3%83%88">テスト</a></h3> <p>パッケージは公開ということもありGitHub Actionsでのテストが無料で放題なので、せっかくなので自動テストをいれてあります。</p> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>小ネタですがサービスサイトの問い合わせフォームもWebではありますがContact Niteに送信して実現しています。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/17765 2021-11-17T09:36:55+09:00 2021-11-17T09:36:55+09:00 https://crieit.net/posts/102949946b0e6197f103d453a781a1fc 数日で有料サービスをリリースしてみた話 <p>有料サービスを2,3日位で作ってリリースしてみました。多分計10時間ほど? 急にぱっと思いついて次の日の夜くらいにはだいたい完成していました。作ったのは下記のHand Refactorerというプログラムのコードを手動的にリファクタリングしてくれるサービスです。</p> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">130円でプログラムのコードを手動的にリファクタリングしてくれるサービスをリリースしました。プログラミングを始めたばかりの方にはもしかしたら役立つ場合もあるかもです。よろしければお試しください!!<a target="_blank" rel="nofollow noopener" href="https://t.co/bHlNXJFbTh">https://t.co/bHlNXJFbTh</a> <a target="_blank" rel="nofollow noopener" href="https://t.co/VhPI80a6Cl">pic.twitter.com/VhPI80a6Cl</a></p>— だら@Flutterもやってる (@dala00) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/dala00/status/1459816338050859008?ref_src=twsrc%5Etfw">November 14, 2021</a></blockquote> <p>ちなみにこれ自体は単に自動的じゃなくて手動かよというツッコミがほしいだけのために作ったネタクソアプリです。</p> <p>色々やるべきことを削ったりなどで考えたりしたので書いておきます。</p> <h2 id="サービスの流れ"><a href="#%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E6%B5%81%E3%82%8C">サービスの流れ</a></h2> <p>そもそもサービスの流れですが、まずユーザーがリファクタリングしてほしいコードを入力して登録します。</p> <p>それを僕が人力でリファクタリングし、回答として登録するとユーザーがそれを確認できる、という形です。</p> <h2 id="課金関連の開発を極限まで削る"><a href="#%E8%AA%B2%E9%87%91%E9%96%A2%E9%80%A3%E3%81%AE%E9%96%8B%E7%99%BA%E3%82%92%E6%A5%B5%E9%99%90%E3%81%BE%E3%81%A7%E5%89%8A%E3%82%8B">課金関連の開発を極限まで削る</a></h2> <p>課金となると、結構色々考えなければなりません。ユーザー登録し、そのユーザーに対して課金ログを保存し、購入履歴などを用意する必要があります。ただそこまでするとどうしても工数がかかってしまいます。そのため下記のようにして開発事項を削りました。</p> <h3 id="オーソリを使う"><a href="#%E3%82%AA%E3%83%BC%E3%82%BD%E3%83%AA%E3%82%92%E4%BD%BF%E3%81%86">オーソリを使う</a></h3> <p>オーソリというのは、仮売上です。即課金確定するのではなく、注文が確定した時にキャプチャという処理を行って決済を確定させる方法です。ユーザーが注文してきた時に仮売上とし、僕が処理を行って納品でき、ユーザーがそれを意図的に閲覧した場合に納品確定としキャプチャを行うようにしました。</p> <p>この方法には色々メリットがありました。</p> <h4 id="ユーザーの心理的不安を取り除ける"><a href="#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E5%BF%83%E7%90%86%E7%9A%84%E4%B8%8D%E5%AE%89%E3%82%92%E5%8F%96%E3%82%8A%E9%99%A4%E3%81%91%E3%82%8B">ユーザーの心理的不安を取り除ける</a></h4> <p>個人サービスですので、そこに課金するのにはちょっと不安があります。ただ、ちゃんと納品が行われないと課金が確定しないということが事前にわかっていればその不安をある程度取り除くことができます。</p> <p>確定する場合には、ユーザーに回答画面のURLが貼られたメールが送られます。ここでも実際に見て課金を確定するかどうかをユーザーが意図的に選ぶ事ができます。興味がなければ見ずに終わらせればいいですし、お金を払ってでも見たいと思っていれば閲覧して確定できます。</p> <h4 id="運営側の不安も取り除ける"><a href="#%E9%81%8B%E5%96%B6%E5%81%B4%E3%81%AE%E4%B8%8D%E5%AE%89%E3%82%82%E5%8F%96%E3%82%8A%E9%99%A4%E3%81%91%E3%82%8B">運営側の不安も取り除ける</a></h4> <p>個人サービスで課金機能を提供するのは、運営者としてもなかなか気持ち的に不安になることが多いです。うまくサービスを提供できなかったらどうしよう、大きなミスに気づかず迷惑をかけてしまったらどうしよう、など。</p> <p>しかしオーソリを利用してユーザーがお金を払って結果を見たいと確信して行動する時に初めて課金が行われるようにすれば、なかなか間違えたり問題が起こる可能性は低くなります。そうなると運営側としても問題が発生しにくく安心です。</p> <p>また、最悪僕が怠けたりなにか急なトラブルで全然手を付けられず放置したとしても一切課金されることはありません。また、そんなにリファクタリングすることがないコードであれば確定しないことでキャンセル扱いにすることもできます。</p> <p>このようにしてお互いの不安をなるべく少なくすることでユーザーは購入を、運営はリリースをしやすい気持ちにできるようにしました。これができなければ色々と複雑なテストをしたり入念にいろいろな機能をつくったりしてなかなかリリースはできなかったでしょう。</p> <h3 id="チェックアウトを使わない"><a href="#%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%A2%E3%82%A6%E3%83%88%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84">チェックアウトを使わない</a></h3> <p>Stripeにはチェックアウトというプログラムを書かなくても商品を売れる機能があります。すごく簡単なのですが今回はそれは使いませんでした。というのも売上の結果を知るためにWebhookでチェックする必要があり、ちょっとそれが面倒でした。プログラムで決済してしまえば登録時に一緒にやってしまえばすべてが終わるためそちらの方が処理的にもわかりやすくテストもしやすかったためです。</p> <h2 id="メールアドレスを使う"><a href="#%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E4%BD%BF%E3%81%86">メールアドレスを使う</a></h2> <p>メールアドレスを使うことでログイン機能を削りました。ユーザー登録をすると、やはり離脱率は上がります。ちょっと投稿して利用するだけのサービスでユーザー登録は面倒くさいです。</p> <p>また、ログイン機能を作るとそれはそれで結構面倒です。Next.js と Firebase を使っているのですが、それで認証を入れるとFirestoreのセキュリティルールも設定しなければなりませんし、その状態だとNext.jsのサーバーサイドレンダリング時にエラーが発生することもあり、結構確認事項が増えます。ログイン機能を作らずメールアドレスのみの照合とすることでそれら全ての開発を削りました。</p> <p>メールアドレスだけでは勝手に決済されて危険なのでは? と思われるかもですが、クレジットカード自体は操作している人自身のものを入れなければならないためなりすましは難しいですし、できたとしても結局オーソリまでしか進めないため、利用者が最後まで進まないとお金は一切動きません。</p> <p>またこれにより結果のURLはメールで本人しか知ることができないため漏洩の心配などもありません。</p> <p>最初はユーザーもメールアドレス登録するのはいやかな…とも思ったのですが、そもそも大量の依頼がくるとそれはそれで僕のスケジュールがパンクしてしまうのである意味抑制になっていいかなと思っています。</p> <h2 id="極限までハードルを下げる"><a href="#%E6%A5%B5%E9%99%90%E3%81%BE%E3%81%A7%E3%83%8F%E3%83%BC%E3%83%89%E3%83%AB%E3%82%92%E4%B8%8B%E3%81%92%E3%82%8B">極限までハードルを下げる</a></h2> <p>このハードルというのはユーザー、運営者両方のことです。</p> <p>まず費用は130円という自販機でジュースを買うのと同じ(?)ような料金にしました。また、説明分にはレジャー感覚で使ってほしいということ、意図した結果が帰ってくるとは限らないということを書いておき、運営者的にもちゃんとした結果をださなければ、という不安をなくし、利用者としてもさほど結果に期待しない状態を作っておきました。</p> <p>ハイクオリティになったり、ハードルの認識の齟齬があると開発もそれに対処するためにちょっとやることや考えることが増えたりなど、すぐにリリースはできません。とにかくすぐに作るレベルのサービスに連動したクオリティの商品をそれに見合った低価格で提供することによってリリース時の負担を下げました。</p> <h2 id="管理機能を公開しない"><a href="#%E7%AE%A1%E7%90%86%E6%A9%9F%E8%83%BD%E3%82%92%E5%85%AC%E9%96%8B%E3%81%97%E3%81%AA%E3%81%84">管理機能を公開しない</a></h2> <p>リファクタリング結果の送信ですが、Firestoreのダッシュボードだけではできません。そのためそこは返答用の画面を作ってあげる必要がありました。</p> <p>しかし前述の通り認証もありませんし、URLを作ってしまうと万が一アクセスされてしまった時に情報が漏洩してしまいます。</p> <p>そのため管理画面は公開せず、別プロジェクトとして作り、ローカルのデバッグ実行だけでできるようにしました。絶対に他の人にアクセスされることもありませんので安全です。また、作っていたプログラムをコピーするところから始めたのでベース部分はまるまる流用でき、特に大変でもありませんでした。</p> <h2 id="Firebaseクライアントを使わず全部APIのみにする"><a href="#Firebase%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%9A%E5%85%A8%E9%83%A8API%E3%81%AE%E3%81%BF%E3%81%AB%E3%81%99%E3%82%8B">Firebaseクライアントを使わず全部APIのみにする</a></h2> <p>前述の通り、セキュリティルールを設定するのが面倒だったためFirebaseのクライアントはアクセス解析にしか使っていません。セキュリティルールは全部のデータへのアクセス不許可にしています。</p> <p>普通に単なるAPIとしてfirebase-adminを利用してサーバーサイドのDBのようにして作っています。なにもかんがえることもなく非常に楽です。勝手に変なデータにアクセスされてしまうこともありません。</p> <p>また、Firestoreを使うことによってデプロイする場所を選ばなくてもよいようにもなっています。</p> <h2 id="Cloud Runにデプロイ"><a href="#Cloud+Run%E3%81%AB%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4">Cloud Runにデプロイ</a></h2> <p>今回はCloud Runにデプロイしました。前述の通りDBはFirestoreなのでどこにでもデプロイできます。本来はVercelが一番楽なのですが、この無料プランは個人的な利用のみに限られますので、今回の場合は利用できません。ということでCloud Runを使いました。GitHubにpushしたのに連動して自動的にデプロイもできますし。Herokuでも良いと思いますが頻繁に利用されるサービスではありませんし、あまりアクセスして遅いのもあれかなと思いCloud Runにしました。</p> <p>せっかくなのでDockerfileを使わないでデプロイできるBuildpackというものを試してみたかったというのがあったのですが、どうもビルド無しで実行されてしまうようでエラーになったので今回は諦めてDockerfileを使うことにしました。だいたいDockerfileならどっかーにあると思いますので。</p> <p>今回は下記を使いました。<br /> <a target="_blank" rel="nofollow noopener" href="https://zenn.dev/kazumax4395/articles/427cc791f6145b">【Node.js/Next.js】Cloud Runで動作する軽量なDockerを構築してみた</a></p> <p>これの真ん中のやつでだいたいデプロイに8分ほどかかります。それほどパフォーマンスが必要ではないので一番最初の簡易的なやつでも良かったのかもしれません。なんにしろVercelよりはやはりどうしても遅くなってしまいますね。</p> <p>あと日本リージョンにしたのでちょっとネットワーク料金がかかります(アクセスがちょっと多ければ月何十円とか100円とか?)</p> <h2 id="CSSも使わない"><a href="#CSS%E3%82%82%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84">CSSも使わない</a></h2> <p>今回はChakra UIを使いました。とにかくデフォルトのデザインパーツで、カスタマイズは全部Chakraコンポーネントのプロパティのみで、ぶわっと作りました。非常に楽です。</p> <h2 id="DIFFの表示"><a href="#DIFF%E3%81%AE%E8%A1%A8%E7%A4%BA">DIFFの表示</a></h2> <p>リファクタリングということで、DIFFを表示したほうがわかりやすいかなと思いました。</p> <p>React Diff Viewerというのを使いました。<br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/praneshr/react-diff-viewer">https://github.com/praneshr/react-diff-viewer</a></p> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>最初に書いたとおりクソアプリですので、ものすごい依頼が増えない限りは特にアップデートする予定はありません(依頼がきたらちゃんと対応します。リファクタリングは結構好きなのでわりと楽しんでやっています)。</p> <p>ただ数日で作れたので、これを機に低価格で同じように自分で提供できることを売るのも面白いかなとは思います。どうしても手がかかるので規模が大きくなるとスケールもしないし限界がありますので、あくまでも今回のようにジョーク交じりかつすごく負担の少ない作業だけになるとは思いますが。</p> <p>逆に言うと、低価格でちょっとなにか提供できる、というひとはたくさんいると思いますので、みんながこういうサービスを各々作れたら面白いのにな、とも作ってる途中に思いました。例えば小説の手直し、絵の手直し、もしくはちょっとした絵を書いてあげたり、サービスの感想を伝えてあげたり、なにか写真をとってあげたり、ロゴをつくってあげたり。皆自分の得意なことを提供して少しでもお金になれば楽しいのでは、と思いました。</p> <p>もちろんそういうモール的なサービスはいくつかあると思いますが、あくまでも自分の個人商店的な感じで運用するのも面白いと思います。</p> <p>自分でみんながそういうことを提供できるサービスを作ればよいのでは、とも一瞬思ったのですが、やはり価格的に運営者に入るお金はかなり薄利になり、儲けを出すにはかなり大量に集客しないといけませんし個人だと逆に大変なことが多そうなので、無理かなと思いました。Skebのもっと安くて気軽バージョン的な感じかもです。</p> <p>なので可能な方は是非同じ様なサービスを作ってなにか提供してみると面白いのではないかと思います。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/15874 2020-04-27T20:36:57+09:00 2020-04-27T20:36:57+09:00 https://crieit.net/posts/stripe-connect-registration Stripeアカウントの連結手順 <p>Stripeと連携する処理を進めると下記の画面に遷移します。</p> <p><a href="https://crieit.now.sh/upload_images/40080d606f845eb3c77ef250872620565ea62a5643a69.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/40080d606f845eb3c77ef250872620565ea62a5643a69.png?mw=700" alt="" /></a></p> <p>ここでStripeアカウントを作成しますが、画像の右上にあるリンクから既にお持ちのStripeアカウントを利用することも出来ます。</p> <p>基本的に全ての入力内容は、<strong>あなたご自身が事業を行う</strong>前提での質問となります。「お客様の事業」はあなたが記事を販売する事業、「顧客」はあなたの記事を購入したユーザーのこととなります。あくまでもCrieitとあなたの事業の手数料連携のみという扱いになり、Crieitがあなたの事業の管理及び保護を行うものではありませんので、その前提で入力を進めてください。</p> <h2 id="コンプライアンス関連の質問"><a href="#%E3%82%B3%E3%83%B3%E3%83%97%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%82%B9%E9%96%A2%E9%80%A3%E3%81%AE%E8%B3%AA%E5%95%8F">コンプライアンス関連の質問</a></h2> <p>まず最初にコンプライアンス関連の質問に回答します。こちらは自動的に下書きされますのでゆっくり入力して途中であとから続きを進めることも可能です。</p> <p><a href="https://crieit.now.sh/upload_images/40080d606f845eb3c77ef250872620565ea62b2b0e3d8.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/40080d606f845eb3c77ef250872620565ea62b2b0e3d8.png?mw=700" alt="" /></a></p> <p>基本的には下記のように回答すれば問題ありません。その他は適宜確認のうえ適切なものを選択してください。</p> <blockquote> <p>今後、顧客のカード番号を取り扱う予定はありますか?</p> </blockquote> <p>→いいえ</p> <blockquote> <p>今後、お客様の事業で、または他事業の代理として決済を生成する接続アプリケーション (Connect Standard) で、顧客の身元を特定することを目的として、何らかの種類の付加的な検証手段を利用する予定はありますか?</p> </blockquote> <p>→いいえ</p> <blockquote> <p>今後、お客様の事業で、または他事業の代理として決済を生成する接続アプリケーション (Connect Standard) で、決済ごとにカードのセキュリティコードを要求する予定はありますか?</p> </blockquote> <p>→はい</p> <blockquote> <p>今後、お客様の事業で、または他事業の代理として決済を生成する接続アプリケーション (Connect Standard) で、疑わしい配送先住所を検出するための対策を講じる予定はありますか?</p> </blockquote> <p>→いいえ</p> <h2 id="本番環境利用の申請"><a href="#%E6%9C%AC%E7%95%AA%E7%92%B0%E5%A2%83%E5%88%A9%E7%94%A8%E3%81%AE%E7%94%B3%E8%AB%8B">本番環境利用の申請</a></h2> <p>ご自身が事業者としての入力を行ってください。Crieitの情報を書く部分はありません。「ビジネスの Web サイト」はCrieitのご自身のプロフィールページURLを使って頂いて大丈夫です。</p> Crieit=コミュニティlike(Qiita+dev.to)/3公式