2011-12-13 13 views
2

私のアプリに問題があります。私がユーザーから必要とするのは、FacebookのIDだけです。彼らはFacebookにログインした後、私のアプリにリダイレクトされ、$ facebook-> getUser()でuserIDを取得できます。これは、ユーザーがFacebookのユーザー名を選択した場合を除いて正常に動作します。それから、私は本当に奇妙な長いIDをuseridとは違うものにします。Facebook getUserが間違ったIDを返す

明確にするために、ユーザ名を設定していないユーザからuseridを尋ねると、たとえばid:1234567891が返されます。 ユーザがユーザ名を設定すると、100002339295322のようなIDが取得されます。

誰かmabyは私がこれを解決する方法を知っていますか?

私のやり方についてのコードサンプルが必要な場合は、Facebookの開発者向けサイト(http://developers.facebook.com)に記載されているとおりに行います。フレンドリーな挨拶で

、 ボブ

PS:私はCodeIgniterのフレームワークと

* /// EDIT \ *

問題が解決された公式のFacebookのPHP SDKを使用します。明らかに、私はフィールドに使用したデータ型と何か関係がありました。私はそれをintからvarcharに変更しましたが、今はすべて動作しています。

+0

あなたが得る「長い」ユーザIDが間違っていると思いますか?比較のために使用する「本当の」ユーザーIDをどのように取得しますか? –

+1

http://www.facebook.com/profile.php?id=1234567891のように試してみましたが、短いバージョンはうまくいきました。 – Bob

+1

私はちょうどテストアカウントのユーザーIDをチェックし、あなたの '長い'形式(アカウントにもユーザー名があります)に一致しました。これをプロファイルページのidパラメータとして使用することもできます。だから私はあなたの仮定を確認する必要があります - あなたがテストしているユーザーアカウントが何らかの理由でプロファイルページを持っていない可能性がありますか? (getUser()のようなコアSDKの関数が間違ったデータを返す可能性は非常に低いです。) –

答えて

0

ないすべてのFacebookユーザーがユーザ名を持っていますが、それらはすべてユーザIDを持っています。 (例:英数字のユーザー名を使用するのはオプションです。facebook.com/johnsmithまたはsmthに簡単にアクセスできます)

あなたの最善の賭けはID(10桁の数字)を保存し、名前おそらくstackoverflowのように彼らのファーストネームを格納します。

+0

私はuseridを取得していますが、ユーザーがユーザー名を設定したときに、$ facebook-> getUser()で正しいユーザーIDを取得することはできませんが、本当に奇妙なものです。それは問題です;)。 – Bob

+0

どういう意味ですか?あなたは例を挙げることができますか? – Mike

0

2014年5月1日以降に来ているユーザーの場合、テストアプリのデフォルトはv2 APIになります。これは、アプリがv1を使用して作成された場合に問題を引き起こします。 FAQの最後の投稿を参照してください。https://developers.facebook.com/docs/apps/test-apps

4

私は同様の問題があり、v2.0 APIのuser_idがappスコープであることが判明しました。私は、同じユーザーのプロファイルに対して2つのuser_idを持っていましたが、それぞれのアプリケーションで有効です。あなたは

http://facebook.com/app_scoped_user_id/<USER_ID> 

でユーザープロファイルを達することができる

また、アプリのトークンを使用して、グラフAPIに照会することができるアプリは、ユーザーIDをスコープ。

のRef .: https://developers.facebook.com/docs/apps/upgrading/#upgrading_v2_0_user_ids

+0

私はOPと同じ問題を抱えていて、これが修正されました。私はこの 'https://www.facebook.com/profile.php?id = LONG_USER_ID'を使ってユーザーのプロフィールにリンクしようとしていましたが、それは機能しませんでした。ありがとう! –

関連する問題