可能重複:
Android post picture to Facebook wall如何發佈圖片至Facebook的Android應用
我是新來Facebook的Android SDK中。我已經添加了SDK作爲Android項目的eclipse。在我的應用程序中有一個圖像和一個按鈕。我想要按下按鈕時將圖像上傳到Facebook。我已閱讀過SO上的各種帖子。但我無法弄清楚如何去做。任何幫助?
可能重複:
Android post picture to Facebook wall如何發佈圖片至Facebook的Android應用
我是新來Facebook的Android SDK中。我已經添加了SDK作爲Android項目的eclipse。在我的應用程序中有一個圖像和一個按鈕。我想要按下按鈕時將圖像上傳到Facebook。我已閱讀過SO上的各種帖子。但我無法弄清楚如何去做。任何幫助?
嘗試用這個,
Button mButton=(Button)findViewById(R.id.button);
mButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Facebook mFacebook=new Facebook(yourAppID)
byte[] data = null;
Bitmap bi = BitmapFactory.decodeFile(imageLink);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bi.compress(Bitmap.CompressFormat.PNG, 100, baos);
data = baos.toByteArray();
Bundle params = new Bundle();
params.putString("method", "photos.upload");
params.putByteArray("picture", data);
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(mFacebook);
mAsyncRunner.request(null, params, "POST",
new SampleUploadListener(), null);
}
});
public class SampleUploadListener extends BaseRequestListener {
@SuppressWarnings("unused")
public void onComplete(final String response, final Object state) {
try {
Log.d("Facebook-Example", "Response: " + response.toString());
JSONObject json = Util.parseJson(response);
String src = json.getString("src");
PublishImage.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(),
"Successfully Uploaded", Toast.LENGTH_SHORT)
.show();
}
});
} catch (JSONException e) {
Log.w("Facebook-Example", "JSON Error in response");
} catch (FacebookError e) {
Log.w("Facebook-Example", "Facebook Error: " + e.getMessage());
}
}
}
public abstract class BaseRequestListener implements RequestListener {
public void onFacebookError(FacebookError e, final Object state) {
Log.e("Facebook", e.getMessage());
e.printStackTrace();
}
public void onFileNotFoundException(FileNotFoundException e,
final Object state) {
Log.e("Facebook", e.getMessage());
e.printStackTrace();
}
public void onIOException(IOException e, final Object state) {
Log.e("Facebook", e.getMessage());
e.printStackTrace();
}
public void onMalformedURLException(MalformedURLException e,
final Object state) {
Log.e("Facebook", e.getMessage());
e.printStackTrace();
}
}
已經放置在eventlistener的onclick方法中了嗎?另外,它似乎需要某種會話。如何開始會話 –
我在我的代碼中進行了更改,將其放在您的onclick方法中。 – Aerrow
它在FaceBookLoginPage和SampleUploadListener上顯示錯誤 –
商店你在一個位圖圖像。並使用下面的代碼。
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpPost httpPost = new HttpPost(
"https://graph.facebook.com/me/photos?access_token="
+ AccessTokens.fbaccesstoken);
MultipartEntity entity = new MultipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 100, bos);
byte[] data = bos.toByteArray();
entity.addPart("source", new ByteArrayBody(data, "myImage.jpg"));
entity.addPart("message", new StringBody(caption.getText()
.toString()));
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost,localContext);
[你試過這個嗎?](http://stackoverflow.com/a/5168523/940096) – Praveenkumar
你累了什麼? – Aerrow
@SpK在上面的鏈接中,在接受的答案中,很多代碼都丟失了,你能幫我弄清楚如何實現圖表api –