0

コマンドラインから特定のユーザーアカウントに投稿を書き込むことができるアプリケーションを作成しました。これは、必要な権限で、場所と場所の情報を含むメッセージを正常に投稿しています。

次のステップはユーザーアカウントに画像をアップロードすることでしたが、問題は次のエラーが発生することです。

このリソースをリクエストするには、ユーザーアクセストークンが必要です。

これで、APIポストを実行するスクリプトは、ブラウザーから実行されるのではなく、PHPで実装されたLinuxサービスデーモンとして実行されます。このスクリプトには、メッセージを投稿し、1日の特定の時間に参加者のアカウントに写真をアップロードするゲームループが含まれており、プロファイルが参加している休日をシミュレートします。

したがって、アプリケーションスクリプトからBaseFacebook :: getUserを呼び出すと、結果は0になります。これは、 BaseFacebook::getAccessTokenがユーザーアクセストークンではなくアプリケーションアクセストークンを返すことを意味します。

また、チェックしたところ、コマンドラインアプリにはセッションがなく、ゲームループ中に連続して異なるユーザーアカウントに投稿する必要があるため、保護されたメソッドBaseFacebook::getUserAccessTokenが有効なトークンを返さないことに気付きました。

前述したように、投稿を作成したり、投稿に場所を添付したりすることもできますが、ユーザーアクセストークンを必要とせずに別のユーザーアカウントに写真をアップロードする方法はありますか?

私はoffline_accessを使用できることを理解していますが、これは2012年10月3日に非推奨になります。これは、クライアントアプリケーションがすでにライブで実行されている時間です。

ただし、アプリのプレーヤー/ユーザーは時々アプリケーションにアクセスするので、ブラウザーからトークンを使用してデータベースに保存し、コマンドラインアプリケーションからそれを利用することは可能でしょうか?

4

1 に答える 1

1

しかし、私たちのアプリのプレーヤー/ユーザーは時々アプリケーションにアクセスするので、ブラウザからトークンを使用してデータベースに保存し、コマンドライン アプリケーションからそれを利用することは可能でしょうか?

まさにその通りです。

また、このドキュメントでは、これらのトークンの処理方法、有効期間の長いトークンの取得方法などについて説明しています。 – https://developers.facebook.com/roadmap/offline-access-removal/

また、https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/も読むべきものです。

于 2012-08-14T14:20:42.367 に答える