コマンドラインから特定のユーザーアカウントに投稿を書き込むことができるアプリケーションを作成しました。これは、必要な権限で、場所と場所の情報を含むメッセージを正常に投稿しています。
次のステップはユーザーアカウントに画像をアップロードすることでしたが、問題は次のエラーが発生することです。
このリソースをリクエストするには、ユーザーアクセストークンが必要です。
これで、APIポストを実行するスクリプトは、ブラウザーから実行されるのではなく、PHPで実装されたLinuxサービスデーモンとして実行されます。このスクリプトには、メッセージを投稿し、1日の特定の時間に参加者のアカウントに写真をアップロードするゲームループが含まれており、プロファイルが参加している休日をシミュレートします。
したがって、アプリケーションスクリプトからBaseFacebook :: getUserを呼び出すと、結果は0になります。これは、 BaseFacebook::getAccessTokenがユーザーアクセストークンではなくアプリケーションアクセストークンを返すことを意味します。
また、チェックしたところ、コマンドラインアプリにはセッションがなく、ゲームループ中に連続して異なるユーザーアカウントに投稿する必要があるため、保護されたメソッドBaseFacebook::getUserAccessTokenが有効なトークンを返さないことに気付きました。
前述したように、投稿を作成したり、投稿に場所を添付したりすることもできますが、ユーザーアクセストークンを必要とせずに別のユーザーアカウントに写真をアップロードする方法はありますか?
私はoffline_accessを使用できることを理解していますが、これは2012年10月3日に非推奨になります。これは、クライアントアプリケーションがすでにライブで実行されている時間です。
ただし、アプリのプレーヤー/ユーザーは時々アプリケーションにアクセスするので、ブラウザーからトークンを使用してデータベースに保存し、コマンドラインアプリケーションからそれを利用することは可能でしょうか?