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); 

示例上传监听器:

    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 个实例,一个作为全局实例,一个在执行上述代码的方法内部,所以发生的事情是我从未授权我尝试执行请求的对象是。

出于某种原因,错误并没有说明这一点,但如果您发生这种情况,请确保您已初始化正确的对象并且它具有有效的会话

于 2012-06-11T16:20:08.557 回答