Facebook User AccessTokenの有効期限は2種類

developers.facebook.com

ウェブ上のアクセストークンの寿命は、多くの場合、約2時間ですが、必要に応じて自動的に更新されます。特にサーバー側でより長期的なウェブアプリ用のアクセストークンを使用する必要がある場合、長期トークンを生成する必要があります。長期トークンの有効期限は、通常、約60日間です。

あまり理解できていないが、Facebook Loginの際にユーザ基本情報を取得。その後1週間位経ってから、追加でPhoto情報を取得したいってなったら、再度AccessTokenを発行する(=ユーザにログインし直してもらう)必要があるのかな?面倒くさい

docker nginxでcontainer --> hostへプロキシしたい

https://cdn-ak.f.st-hatena.com/images/fotolife/q/quoll00/20160722/20160722142617.jpg

前提

  • docker-composeを使う
  • nginxはコンテナを使う
  • host(mac)上でNodejsサーバが動いている
  • browser --> nginx --> nodejs という通信を実現したい

課題1

  • Nginx側でプロキシする先のIPがわからない。具体的には proxy_passで設定するIPのこと
  • host側で ifconfig en0 | grep "inet " | cut -d " " -f2 --> 10.13.165.28 のように取得できるIPを設定する必要がある

手段1

素直にIPをdocker-compose.ymlに直書き。欠点はIPが環境によってかわること

Dockerコンテナ内部からホストのSMTPを利用したい - Qiita

手段2

直書きではなく頑張って、動的にhostのIPを取得して、nginxのconfigファイルに渡す。どうやって…?

コンテナ内からホストのIPを知るコマンド。172.18.0.1のようなアドレスが取得できるが下記のようなエラーになる。macが持つrealなprivate ipが取得できていないから? 192.168.xx.xx or 10.13.xx.xxみたいなやつがほしい。

/sbin/ip route|awk '/default/ { print $3 }'
/ # wget 172.18.0.1:1337 -O -
Connecting to 172.18.0.1:1337 (172.18.0.1:1337)
wget: can't connect to remote host (172.18.0.1): Connection refused

ちなみにmac側で自分のprivate ipを知るコマンド

ifconfig en0 | grep "inet " | cut -d " " -f2
ipconfig getifaddr en0

この辺が答えになるかも。 How to get the IP address of the docker host from inside a docker container - Stack Overflow

核心に迫ってきた。nginxの設定ファイル Document how to connect to Docker host from container · Issue #1143 · docker/docker · GitHub

172.18.xx.xxは何者?

Dockerのネットワークを理解するために覚えたことまとめ - Carpe Diem

そして最後は公式ドキュメント

Networking features in Docker for Mac - Docker

  • ifconfigip adocker0というネットワークが見えるはずだが、macだと見えない
  • I want to connect from a container to a service on the hostに書いてあった。LinuxOSなら、手段2のコマンドで普通に通信できるようだが、macだとまだ無理とのこと

google-map-reactの使い方とoptions

What's this

シンプルで使いやすいGoogle Maps APIのreact向けwrapper

GitHub - istarkov/google-map-react: universal google map react component, allows render react components on the google map

maps options

Google Maps JavaScript API V3 Reference  |  Google Maps JavaScript API  |  Google Developers

code example

        <div className={`container`}>
          <GoogleMap
            options={MAP_OPTIONS}
            bootstrapURLKeys={URL_KEYS}
            defaultCenter={this.props.center}
            defaultZoom={this.props.zoom}
            onChange={this.onChange.bind(this)}
          >

          {markers.Markers.map((marker, index) =>
            <MyGreatPlace key={index} onTouchTap={() => this.onTapMarker(index)} lat={marker.lat} lng={marker.lng} text={index.toString()} />
          )}
          </GoogleMap>
        </div>