0

アプリIDは正しいのですが、SDKを使用するとこのエラーが発生します。

これで、アプリを承認しようとすると、正常に動作して承認されますが、リクエストを実行しようとすると、Facebookはこのエラーを返します。私のアプリは適切に初期化されており、サンドボックスモードではありません。

この問題に関する情報は見つかりませんでした。誰かがこれを引き起こす原因を知っていますか?

次のコードを使用して写真をアップロードしようとしています:

    byte[] data = null; 

Bitmap bi = BitmapFactory.decodeFile(photoToPost); 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
bi.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
data = baos.toByteArray(); 

Bundle params = new Bundle(); 
params.putString("method", "photos.upload"); 
params.putByteArray("picture", data); 

AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook); 
mAsyncRunner.request(null, params, "POST", new SampleUploadListener(), null); 

SampleUploadListener:

    public class SampleUploadListener extends BaseRequestListener { 

    public void onComplete(final String response, final Object state) { 
        try { 
            // process the response here: (executed in background thread) 
            Log.d("Facebook-Example", "Response: " + response.toString()); 
            JSONObject json = Util.parseJson(response); 
            final String src = json.getString("src"); 

            // then post the processed result back to the UI thread 
            // if we do not do this, an runtime exception will be generated 
            // e.g. "CalledFromWrongThreadException: Only the original 
            // thread that created a view hierarchy can touch its views." 

        } catch (JSONException e) { 
            Log.w("Facebook-Example", "JSON Error in response"); 
        } catch (FacebookError e) { 
            Log.w("Facebook-Example", "Facebook Error: " + e.getMessage()); 
        } 
    } 

    @Override 
    public void onFacebookError(FacebookError e, Object state) { 
        // TODO Auto-generated method stub 

    } 
} 
4

1 に答える 1

3

私は問題を解決しました。

問題は、Facebook オブジェクトの 2 つのインスタンスを作成したことでした。1 つはグローバルとして、もう 1 つは上記のコードを実行するメソッド内にあるため、リクエストを実行しようとしたオブジェクトを承認したことがありません。

何らかの理由で、エラーはそれを示していませんが、これが発生した場合は、正しいオブジェクトを初期化し、有効なセッションがあることを確認してください

于 2012-06-11T16:20:08.557 に答える