[問題] facebook api
各位大大好
最近在練習 facebook api ,原本一切順利 也可以po 文與圖,
但是今天在重新試了一次後,卻一直出現錯誤
(登入可,一按下按鈕即當掉,按鈕為放上圖片與文字)
APP id 和 Key Hashes2 都已經取得
以下為code
package com.example.testfb;
import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.facebook.android.*;
import com.facebook.android.Facebook.*;
public class MainActivity extends Activity
{
private Facebook facebook = new Facebook("我的app id");//這邊是正確的
String message = "I want to sent message";
public Bitmap bmp;
private static final String[] PERMISSIONS = new String[] {
"publish_stream", "read_stream", "offline_access","user_photos" };
public Button sendBtn;
public TextView tv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sendBtn = (Button)findViewById(R.id.send);
tv = (TextView)findViewById(R.id.textView1);
bmp=BitmapFactory.decodeResource(getResources(),
R.drawable.ic_launcher);
facebook.authorize( this, new String[] { "email","publish_stream",
"read_stream","user_photos" },
new DialogListener(){
@Override
public void onComplete(Bundle values) {
// TODO Auto-generated method stub
}
@Override
public void onFacebookError(FacebookError e) {
// TODO Auto-generated method stub
}
@Override
public void onError(DialogError e) {
// TODO Auto-generated method stub
}
@Override
public void onCancel() {
// TODO Auto-generated method stub
}
});
sendBtn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v)
{
/*
try {
checkins();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
try {
photo();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FacebookError e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//albumid();
// postToWall_photos(message, message, Bitmap2Bytes(bmp));
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
facebook.authorizeCallback(requestCode, resultCode, data);
}
private byte[] Bitmap2Bytes(Bitmap bm){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
return baos.toByteArray();
}
public void photo() throws MalformedURLException, IOException,
FacebookError, JSONException
{
String wallAlbumID = null;
String response = facebook.request("me/albums");
JSONObject json = Util.parseJson(response);
JSONArray albums = json.getJSONArray("data");
for (int i =0; i < albums.length(); i++)
{
JSONObject album = albums.getJSONObject(i);
if (album.getString("type").equalsIgnoreCase("wall"))
{
wallAlbumID = album.getString("id");
break;
}
}
if (wallAlbumID != null)
{
Bundle params = new Bundle();
params.putString("message", "Uploaded on ");
params.putByteArray("source", Bitmap2Bytes(bmp));
facebook.request(wallAlbumID+"/photos", params, "POST");
}
}
}
謝謝大大耐心看完
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.20.62
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):