2018-10-18に更新

サイボウズLiveを作る-第1回-アイコン登録まで

概要

サイボウズLiveが終了するとのこと。

無料グループウェア「サイボウズLive」サービス終了のお知らせ | サイボウズ株式会社

丁度他のアプリケーション作成が一区切りついたところだったので、今度はサイボウズLiveのコピーを作ってみようと思う。
ざっと見てみたらそんなにページ数も多くなさそうな気もするし。

一通り作ってはみようと思うが特に代替、移行先として呼びこむつもりはない。
そんなアクセスが来たら止まるだろうし。

仕様

  • Elixir1.5
  • Phoenix1.3
  • Bootstrap Material Design

JavaScriptはAngularかVueを使おうかと思ったが、面倒だったことを思い出すと嫌になったのでやめた。
ソロだし付属のbrunchでES6を使ってjQueryで綺麗に書けば十分。

※PhoenixでVueも簡単に使えるようなので置き換え中。

とりあえず作ったところ

認証

とりあえずTwitterでログインできるようにした。

GitHub - ueberauth/ueberauth_twitter: Twitter Strategy for Überauth

ユーザー作成やログイン部分は自分で勝手にやりたかったので、
ログインURLの発行とcallbackのパラメータ構築だけ任せ、
取得したパラメータであれこれやっている。

defmodule Cybozulive.AuthController do
  use Cybozulive.Web, :controller

  alias Cybozulive.UserRepo

  plug Ueberauth

  def request(conn, _params) do
    Ueberauth.Strategy.Helpers.callback_url(conn)
  end

  def callback(%{assigns: %{ueberauth_failure: _fails}} = conn, _params) do
    conn
    |> put_flash(:error, "Failed to authenticate.")
    |> redirect(to: "/")
  end

  def callback(%{assigns: %{ueberauth_auth: auth}} = conn, _params) do
    user = UserRepo.find_or_create!(auth)
    conn
    |> Cybozulive.Auth.set_user(user)
    |> redirect(to: "/")
  end
end

アイコンの登録

とりあえず掲示板とか作りたいところだが、

  • 掲示板作るにはグループが要る
  • グループ作るにはアイコンが要る

ということで面倒だがとりあえずアイコンを登録できる機能を作った。

phoenix.gen.htmlとarc_ectoでちゃちゃっと作れた。
そのままだと画像は公開されないので、

Elixir / Phoenix — Uploading images locally (With ARC)

にあるとおり、Plug.Staticの設定で公開できる。

  plug Plug.Static,
    at: "/uploads", from: Path.expand("./uploads"), gzip: false

(公開側はBootstrap Material Designだが、管理画面は面倒だし本当は作りたくなかったのでPhoenixデフォルトのBootstrap)

全部これで登録はやってられないのでスクリプトで一括登録で作成予定。

ツイッターでシェア
みんなに共有、忘れないようにメモ

view_list [連載] サイボウズLiveを作る
第1回 サイボウズLiveを作る-第1回-アイコン登録まで
第2回 サイボウズLiveを作る-第2回-グループ登録まで
第3回 サイボウズLiveを作る-第3回-トピック登録まで
第4回 サイボウズLiveを作る-第4回-Todoをざっと
第5回 サイボウズLiveを作る-第5回-グループへ参加

だら@Crieit開発者

Crieitの開発者です。 Webエンジニアです(在宅)。大体10年ちょい。 記事でわかりにくいところがあればDMで質問していただくか、案件発注してください。 業務依頼、同業種の方からのコンタクトなどお気軽にご連絡ください。 業務経験有:PHP, MySQL, Laravel, React, Flutter, Vue.js, Node, RoR 趣味:Elixir, Phoenix, Nuxt, Express, GCP, AWS等色々 PHPフレームワークちいたんの作者

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント