質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Facebook Graph API

Facebook Graph APIとは Facebookのグラフデータベース用のAPIであり、対応言語はPHP、Perl、ActionScript、JavaScriptなどがあります。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

0回答

503閲覧

Facebook SDKで他のユーザーはプロフィールの名前を取得できているのに、1名だけできてない時疑うべきこと

退会済みユーザー

退会済みユーザー

総合スコア0

Facebook Graph API

Facebook Graph APIとは Facebookのグラフデータベース用のAPIであり、対応言語はPHP、Perl、ActionScript、JavaScriptなどがあります。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2020/01/21 01:49

前提・実現したいこと

Facebook APIを利用したFBログインの初回ログインで、1名だけプロフィール情報の取得で不具合があり、原因を突き止めたい

発生している問題

新規登録のユーザーで、プロフィールのメールアドレス情報などは取得できているにも関わらず、名前だけ取得できないユーザーがいました。
ほぼ同じ時間帯に登録した他のユーザーでは、そういった現象が起きていません

名前を取得できなかったユーザーの他のプロフィール情報は取得できていることから、通信の問題という線は考えにくく、他のユーザーでは全ての情報を取得できていることから、取得方法が変わった訳でもないと思います

アクセス制限がかかる情報ではないはずなので、発生原因の説明ができません
お客さんに何らかの回答をしたいのですが、どのように調査すればいいかもわからずにいます

ユーザー名が変更された場合は、再度このシステムにログインすることで更新がかかります

このような場合、APIとの通信で何かしらの問題があったようですが、ユーザーがログインすれば更新されるため問題ないという回答になりますでしょうか?
みなさんだったらどうされますか?

まさか半角・全角スペースだけでFBのアカウント登録できるのかと試してみたのですが流石に違いました

このユーザーでしか起きてないことで、再現方法もわからないのですが何か似たような不具合をみたことがある方がいれば教えていただきたいです

該当のソースコード

FBの公式で紹介されていたPHPでのFBログインのコールバック関数の書き方ほぼそのままのコードを使い、プロフィール情報を取得しています

try { // Returns a `Facebook\FacebookResponse` object $response = $facebook->get('/me?locale=ja_JP&fields=id,name,email,birthday,age_range,gender,locale,picture.type(large).redirect(0),cover,link', $facebook__accessToken->getValue()); } catch (Facebook\Exceptions\FacebookResponseException $e) { $flashMessage = __('Graph returned an error: ') . $e->getMessage(); $this->Flash->error($flashMessage); return $this->redirect($this->errorRedirectUrl); } catch (Facebook\Exceptions\FacebookSDKException $e) { $flashMessage = __('Facebook SDK returned an error: ') . $e->getMessage(); $this->Flash->error($flashMessage); return $this->redirect($this->errorRedirectUrl); } // UserData $facebook__user = $response->getGraphUser(); if (empty($facebook__user)) { $flashMessage = __('Could not get user information.'); $this->Flash->error($flashMessage); return $this->redirect($this->errorRedirectUrl); } // User is logged in with a long-lived access token. // You can redirect them to a members-only page. $facebookAccessTokenValue = $facebook__accessToken->getValue(); $facebookUserId = $facebook__user['id']; $facebookUserEmail = $facebook__user['email']; $facebookUserName = $facebook__user['name']; // Register or Update login -> // member $member = $this->Members->findByFacebookUserId($facebookUserId); if (empty($member)) { $member = $this->Members->newEntity(); $member->facebook_user_id = $facebookUserId; } $member->facebook_access_token = $facebookAccessTokenValue; $member->facebook_email = $facebookUserEmail; $member->facebook_name = $facebookUserName; if (!$this->Members->save($member)) { $this->Flash->error(__('Failed to login.')); return $this->redirect($this->errorRedirectUrl); } // user $user = $this->Users->findByMemberId($member->id); if (empty($user)) { $user = $this->Users->newEntity(); $user->id = $member->id; $user->facebook_user_id = $facebookUserId; $user->is_invalid = false; $user->deleted = null; $user->facebook_email = $facebookUserEmail; } $user->facebook_access_token = $facebookAccessTokenValue; $user->facebook_name = $facebookUserName; $user->last_logined = Time::now();

補足情報(FW/ツールのバージョンなど)

cakephp3.5
Facebook SDK for PHP5.6.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問