問題タブ [facebook-android-sdk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - AndroidアプリでextendAccessTokenIfNeededを使用してFacebookトークンを拡張することは可能ですか?
これは多くのFacebook/Android開発者に影響を与える可能性があると思いますが、それでもこのトピックについてはそれほど多くの議論がないようです...
私の質問
extendAccessTokenIfNeeded関数を使用してトークンを正常に更新した人はいますか?成功した場合、デバイス(またはエミュレーター)はどのバージョンで実行されていましたか?
バックグラウンド
Facebookからoffline_access権限が2012年5月1日から廃止されるというメールを受け取り、Facebookは最新のSDKへのアップグレードを推奨しました。罰金。
最新のSDKにアップグレードし、公式のFacebookアプリがデバイスにインストールされ、(最終的には!)シングルサインオンは正常に機能しているようです。60日間のトークンを受け取っていますが、これも問題ありません。
extendAccessTokenIfNeeded(Context context、ServiceListener serviceListener)を使用しようとすると、問題が発生しました。有効期限を長くするためにトークンを更新することができませんでした。試行の合間に24時間待ちましたが、トークンが更新されませんでした。更新されたトークンを取得する唯一の方法は、ログアウトしてログインすることです。これは、サンプルプロジェクト「Hackbook」を使用したときにも発生しました。
最も明白な答えは、私が何か間違ったことをしているということですが、バグレポートがFacebookに送信され、「shouldExtendAccessTokenはほとんどの場合falseを返します」と述べています。このレポートには、優先度の高い「ウィッシュリスト」が与えられています。
extendAccessTokenAsNeeded()の代替
Facebookのドキュメントでは、 offline_accessの非推奨トークンについて、GraphAPIを使用して拡張できます。ただし、これには「アプリシークレット」をURLに含める必要があるという欠点があります。利点は、ユーザーが公式のFacebookアプリをデバイスにインストールする必要がないことです。
その他のアイデアと懸念
Facebook.javaのextendAccessTokenIfNeeded関数を常にtrueを返すように変更することで、一度更新したと思います。(私が「考える」と言う理由は、それが行動を繰り返さないためであり、次の成功のチャンスが来るまでさらに24時間待たなければならないと思うからです)
HackbookではAndroidHttpClientをインポートする必要があることに気付きました。これは、API8以降でのみ使用できます。これは、Facebook SSO(特にトークンの更新)がAPI 8以降を搭載したデバイスでのみ機能する可能性が高いことを意味しますか?
SDKに含まれているFacebook.apkはかなり古いものです。おそらくこれが、API8以降を実行しているエミュレーターでトークンが更新されない理由ですか?
そして最後に、これはすべて、公式のFacebookアプリをインストールしている人々にのみ関係します!公式のFacebookアプリがない人のために別の方法を完了する必要があります(今すぐ文句を言うだけです!)
関連するFacebookリンク
関連するスタックオーバーフローの質問
Facebookの60日間のアクセストークンと非推奨のOffline_Access
android - Android アプリで更新された Facebook トークンを取得するためのコードは何ですか?
私はAndroidアプリを開発しています。Facebook の offline_access パーミッションの廃止が迫っているので、Graph API を使用して Facebook トークンを拡張しようとしています。
上記のコードを Android アプリに実装し、更新された Facebook トークンを取得する方法を示す詳細なコードを提供できる人はいますか?
お時間をいただきありがとうございます。
更新 2:
進歩(と思います)!
facebook リクエスト メソッドで完全な URL を使用すると、ベース URL が URL の先頭に追加されます。
使用する必要があります
しかし、私は今、応答 {"error":{"message":"Error validationing application. Invalid application ID.","type":"OAuthException","code":190}} を得ています。
更新 1:
これが私が試したものです。コードは完了します。つまり、リスナーの OnComplete が呼び出されますが、応答には新しいアクセス トークンまたは有効期限値が含まれていません。
これが私のバージョンの RefreshListener です...
コードは完了します。つまり、リスナーの OnComplete が呼び出されますが、応答には新しいアクセス トークンまたは有効期限値が含まれていません。応答は...
同じ URL (英数字の現在のトークン値を持つ) を Web ブラウザーに入力すると、応答にはアクセス トークンが含まれます。
関連情報
Facebook の offline_access パーミッションは 2012 年 5 月 1 日に廃止されます
代わりに onResume() で extendsAccessTokenIfNeeded 関数を使用することはお勧めしません。私もそれで問題を抱えており、それが私がGraph APIトークンの更新を検討している理由です:-)
関連するスタック オーバーフローの質問
AndroidアプリでextendAccessTokenIfNeededを使用してFacebookトークンを拡張することは可能ですか? (私の質問)
5 月 1 日以降に廃止された後、offline_access はどのように機能しますか?
extendAccessToken を使用するためのアプリ シークレットの保護 (Java/Android)
関連する Facebook リンク
android - Facebook SDK のインストール
Android 向けの開発は初めてで、インストールに問題がありfacebook sdk
ます。
私はこのチュートリアルに従いstep 4
ましたが、アプリを実行しようとすると問題が発生します (以前に動作していたコードをまったく変更せずに) Facebook でエラーが発生します
私は何を間違っていますか?
android - Facebook forandroidビデオアップロード-あるアプリで動作し、別のアプリでは動作しません
Facebookにビデオをアップロードするときに奇妙な問題が発生します...
私のコードはこの答えに基づいています:Facebook SDKを使用してSDカードからFacebookにビデオをアップロードすることは可能ですか?
あるFacebookアプリでは完全に機能しますが、別のアプリでは機能しません。
管理者として所有しているFacebookアプリが2つあります。どちらも私のデバッグキーハッシュで設定されており、どちらもまったく同じ設定になっています。
コードで変更するのは、アプリID(最初のアプリまたは2番目のアプリ)だけです。
両方のアプリの動作は次のとおりです。
- 承認は成功しました
- ビデオをアップロードするコードは正常に実行され、ビデオのアップロード後にonComplete()が呼び出されます。
- (動作する)最初のアプリの場合、ビデオは私のFacebookプロファイルに表示されます。2つ目は、そうではありません。
繰り返しますが、私が行う唯一の変更は、2つのFacebookアプリのそれぞれでテストするためにアプリIDを変更することです。
洞察はありますか?
アップデート
以下の私自身の質問に答えました。
java - フェイスブック・アンドロイドでログイン
Facebookでログインを作成しています。ユーザーは Facebook で 1 回だけログインし、Facebook のユーザー ID を取得する必要があります。
私が使用しているコードがあります:
したがって、このメソッドへのコールバックで例外が発生します。
そして例外:
だから私はコードで何かを変更する必要がありますか、それとも他の問題がありますか?
基本的に、ユーザーがアプリをダウンロードするときに一度だけログインする必要があり、ユーザー ID を取得する必要があります。
ありがとう。
編集:
インターネットへのアクセス許可を追加しました。だから問題は私のインターネットにありました。Facebook にアクセスできませんでした。
今までの問題は次のとおりです。この行では:
私はnullを返しています。
java - AsyncTaskとコールバックAndroid
私はfacebokでログインする必要があります。そのため、sdkをダウンロードしてメソッドを作成しました。
ユーザーがログに記録されているという情報を取得したら、これをWebサービスに送信し、アクティビティへのコールバックを行う必要があります。
これが私が持っているコードです。onComplete私は必要なものを説明しようとしました:基本的に、現在のアクティビティへのコールバックが必要です。
多分あなたはいくつかのアイデアを持っていますか?ありがとう。
編集:
android - 私のアプリからFacebookにログインすると、エミュレーターでは機能しますが、デバイスでは機能しません
これは、Facebookにログインするための私のコードです。
エミュレーターでは完璧に動作します。すでにFacebookがインストールされているトン3のデバイスで試しましたが、ここに問題があります。
ロード時に回転するだけで、何もしません。ログインボタンが再び表示されます。次に、元のFacebookアプリケーションからログアウトしようとしました。アプリのログインボタンを押すと、ログインウィンドウが表示されますが、エミュレーターにログインすると、元のFacebookアプリケーションのログインウィンドウが表示されます。のようにこれを始めました。
私が使用しているコードは、hackbook.javaから取得されています
json - タイプ Reference のオブジェクトを投稿する
私はしばらくの間この問題を抱えており、他の人にも同様の問題があるのを見てきました. Open Graph で作成したカスタム オブジェクトをポストしてアプリケーションにポストする処理を行う必要があります。私は主にすべてのプラットフォームでこの問題を抱えていますが、今は Android を使用しているとしましょう。誰かが C# または IOS または PHP でこれを達成した場合は、回答を投稿してください。
例:
Facebook に食事を投稿するオブジェクトがあります。そのプロパティは次のとおりです。
今、Open Graph に別のオブジェクトがあり、それは DailyFood と呼ばれています。以下のような性質があります。
今、投稿に行くとき、Javaで次のことをしようとしています。
ここで、次のエラー コードを生成します。
OAuthException と表示されていることがわかりましたが、このアプリを使用して Facebook にフィードを投稿することはできます。他の誰かが任意のプラットフォームでこのエラーを経験し、解決策を見つけた場合は、ここに投稿してください。
ありがとう!
facebook - Facebook ダイアログと戻るボタン
facebook android SDK を使用してダイアログを開くと、すべて正常に動作します。
ただし、ユーザーが [戻る] ボタンをクリックすると、ダイアログは実際に閉じますが、ダイアログ リスナーのonCancelメソッド (またはその他のメソッド) は呼び出されません。
この問題について検索したところ、github の fb android SDK からこのプル リクエストが見つかりました: Calls Cancel on DialogListener when Dialog is Canceled。
私はこれを得るために一部を取り、それを少し修正しました:
私はそれをFbDialogクラスに追加しましたが、実際にはこれでうまくいくようです。
私が疑問に思っているのは、なぜこれが SDK の一部ではないのですか? そのプル リクエストは 1 年以上前のもので、最後の応答は約 11 か月前のものです。sdk ソースに追加しないのはなぜですか?
このソリューションは機能しているので緊急ではありませんが、後で問題が発生する可能性があるため (更新する場合)、Facebook SDK のソースを変更することは好きではありません。
何か案は?
android - Android アプリから Facebook ページを開きますか?
電話で Facebook アプリケーションを開き、Facebook の優先ページに移動するインテントを開始するにはどうすればよいですか?
私は試した:
ええと、「1234567891」に何を書いても、常に私のページに移動しています。他の人ではなく、常に私に。
どうすればこれを行うことができますか?