投稿者「bando.tetsuro」のアーカイブ

lancers-kun

Facebook SDK GraphAPI v2.2 → v11.0にバージョンアップしました

bando.tetsuro|2021年07月30日
ツール/ライブラリ

開発部エンジニアの坂東です。現在開発に関わっているPROsheetで、Facebook(以下「FB」)を利用した新規登録・ログインが行えないとの声があり、正常に動作するように修正したので振り返ってみようと思います。

SDK について

SDK(Software development kit)はソフトウェア開発キットの略で、プログラムの一部、開発環境、オペレーティングシステムなどを、ツール一式として提供しているものを指します。

本記事では、FB社がWebサイト上でFBを利用した新規登録やログインなどが行えるように外部に提供している、FB SDKについて解説します。

GraphAPI とは

タイトルになっているGraphAPIですが、こちらはFB SDKとアプリケーション間でFBソーシャルグラフ上のデータの読み取りと書き込みを行うための手段として最も重要なものとなります。HTTPベースのAPIであり、プログラムによるデータのクエリ、新しいストーリーの投稿、広告の管理、写真のアップロードなど、アプリのさまざまなタスクに利用できます。

GrapbAPIの中身は下記の要素で構成されています。

・ノード → 特定のオブジェクトに関するデータ(ユーザー、写真、ページ、コメントなど)

・エッジ → 単一のオブジェクトに接続されたコレクション(一つのページ上の複数の写真、一つの写真に対する複数のコメントなど)

・フィールド → 単一のオブジェクトまたはコレクション内の各オブジェクトに関するデータ(ユーザーの誕生日、ページの名前など)

より詳細にGraphAPIに関して知りたい方は公式を見て頂ければ幸いです。

 

今回の対応

まずFB For Developersにアクセスして、FBを利用しての新規登録やログインが行えなくなっている原因を特定するために、既存のPROsheetアプリを調査します。

 

幾つかの設定を見ていく中でアラートを確認した際に、現在アプリが使えない状態だと知りました。

ここからわかることは、アプリが過去にアクティブではない状況が続いていたことです。

アクティブではない状況が続いた要因として、下記の2点を推測しました。

・ユーザーがFBでの新規登録やログインを一定期間行なっていない

・GraphAPIが、何らかの事情で利用できなくなっている

現在も利用されているサービスのため、1点目は一旦考慮せずにGraphAPIにアクセスできない要因を探すことにしました。

次に気になったことは、GraphAPIのバージョンがv2.2だったことです。最近のGraphAPI関連の記事を見てもバージョンがv2.xを利用しているものはありませんでした。既に提供されていないと感じ、提供されているグラフAPIバージョンを見たところ、やはり提供終了日直前のバージョンがv3.3の状態で、v2.2は提供されていないことがわかりました。

 

調査後の対応策として、アプリとソースコード上のGraphAPIのバージョンをv2.2から最新のv11.0まで上げることにしました。v2.2からv11.0まで上げると聞くと非常に難しく感じる方もいらっしゃるかもしれないですが、言語やフレームワークのバージョンアップと異なり、FB SDKのGraphAPIをバージョンアップすることは比較的簡単です。行なったことは2つのみです。

1つ目はPROsheetアプリ側、詳細設定の「APIバージョンのアップグレード」でv2.2が設定されている部分をv11.0に変更しました。これによってアプリ側が求めるGraphAPIのバージョンがv11.0とな

ります。

2つ目は、ソースコード側でGraphAPIに関連した部分をv11.0に修正します。

js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&appId=<?=$account['FACEBOOK_APP_ID']?>&version=v11.0";

上記2つの修正後、PROsheet上でFBを利用した新規登録及びログインができることを確認しました。

振り返って

多くのアプリケーションで利用されているFB SDKですが、導入だけでなくバージョンの追従も容易なことを学ぶことができました。

PROsheet上にはFB SDK以外にもバージョンアップが必要な部分があるので、引き続きプロダクトの品質改善を行なっていきます。

lancers-kun

入社して3ヶ月が経ちました

bando.tetsuro|2020年09月07日
インターンシップ

皆さんはじめまして!6月からランサーズでインターンを開始して、今月から正社員になった坂東です。
実はコロナ禍での入社だったため、未だに社内の方々とも会っておらず、絶賛フルリモート中です。
今回はここまでの振り返りの意味も込めて、ランサーズに入社して感じたことについて書かせていただきます。
この記事が、ランサーズの新卒・中途採用選考にエントリーするか迷っている方の手助けになれば良いなと思っています。

バックグラウンド

高校までは、毎日夜中までオンラインゲームをしながらプロゲーマーを目指していました。
大学進学後は在学中に触れたプログラミングに魅了されエンジニアを目指します。
大学卒業後は専門学校に進学し、WEBデザイン・プログラミングを学ぶ傍ら複数のベンチャー企業にインターンとして従事しました。
過去のインターン先では、エンジニアとしてSaaSプロダクトの開発や、メンターとしてプログラミングスクールでの学習支援を行いました。

ランサーズに入社した経緯

以前働いていた会社で、複業したい人と企業をつなぐマッチングプラットフォームの開発をしており、場所や時間にとらわれずに人々が働ける社会が身近になってきていることを知りました。
私自身そのような社会の実現に向けて、世の中に大きく貢献しているプロダクトに関わりたいと思っていたため、日本最大級のクラウドソーシングサイトを運営しているランサーズに入社しました。
入社に至った理由として、ランサーズが掲げるミッションの「個のエンパワーメント」や、ビジョンである「テクノロジーで誰もが自分らしく働ける社会をつくる」に強く共感したことも挙げられます。

インターン期間中に取り組んだこと

私は開発部の「QAチーム」に所属していました。
QAと聞いてもピンとこない人も多いのではないでしょうか?
QAとはQuality Assurance の略で、ソフトウェアなどの開発物の品質全体を保証すること、およびその職種を指します。
私が実際に行った業務は、CakePHP2で動いているLancers管理画面を、CakePHP4で新規構築して移行する作業でした。
この作業によって、大量のファイルが存在するLancers本体のリポジトリからソースを削減することができます。
バージョンアップに伴う移行作業に関しての詳細はこちら

 

ランサーズで働いてみて感じたこと

開発環境について

社内コミュニケーションはSlackを利用しています。タスクで詰まった時は、Slackコールやチャットでアドバイスを頂きます。
それ以外にも、部会はGoogle Meet、全社会議はZoomなど、規模感に合わせて別のコミュニケーションツールも使われています。
技術面では、Lancers本体の開発以外に社内業務の効率化など、用途に応じて様々なものが使われています。みなさんが見たことない技術もあったりするんじゃないでしょうか?


ソースコードはGitHubで管理します。それに伴って、GitHubのIssuesで現在行っているタスクや今後行うタスクなどを管理しています。
また、プルリクエスト(以下「PR」)は常にレビュアーが複数人つき、コードに問題がないか確認しています。
PRには実装した画面や機能、テストした証跡などについて細かく記載する部分があり、見ただけで何に関するブランチなのかが明確にわかるようになっています。
厳格なルールの設けられたPRを通して、個々人が行った作業を他のエンジニアに視覚的に説明することは非常に大切だと感じました。

労働環境について

ランサーズでの働き方は非常に自由だと感じます。
社内制度だと、リモートワーク制度やフレックスタイム制度、副業OKなど、アフターコロナ後の企業が必要とする制度が詰め込まれていると感じます。
また、ランサーズには非常にハートフルな社員が多いため、相手の気持ちを汲み取り辛いチャット上のやり取りでも至る所に愛が溢れています。
ハートフルな部分にもつながるのですが、社員の年次に関係なく非常にオープンフラットな組織です。以前自分が関わっているタスクで、A案B案のどちらが良いかについてディスカッションがあった際に、私の意見にもしっかり耳を傾けてくれました。エンジニア歴の非常に長い方々が、私と対等に話してくれるのはとても嬉しかったです。

まとめ

開発環境や労働環境について感じたことを書かせて頂きました。
インターン期間中は毎日学ぶことだらけであっという間に時間が過ぎました。
今月から正社員になってジョブローテーションが始まるので、気を引き締めて走り続けていきます。
こちらの記事を見て少しでもランサーズが気になった方は、会社説明会に足を運んでもらえたらと思います。
ここまで読んで頂きありがとうございました!