こんにちは、私はFacebookのページの投稿から特定の列を取得しようとしていて、最終的にはそれらをフォーマットしてテキストファイルに出力します。これは私が今までに試したことですFacebook4jを使用して投稿を取得する
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import facebook4j.Facebook;
import facebook4j.FacebookException;
import facebook4j.FacebookFactory;
import facebook4j.Post;
import facebook4j.Reading;
import facebook4j.ResponseList;
import facebook4j.conf.Configuration;
import facebook4j.conf.ConfigurationBuilder;
public class fB {
public static void main(String[] args) throws FacebookException {
// Make the configuration builder
ConfigurationBuilder confBuilder = new ConfigurationBuilder();
confBuilder.setDebugEnabled(true);
// Set application id, secret key and access token
confBuilder.setOAuthAppId("");
confBuilder.setOAuthAppSecret("");
confBuilder.setOAuthAccessToken("");
// Set permission
confBuilder.setOAuthPermissions("email,publish_stream, id, name, first_name, last_name, generic");
confBuilder.setUseSSL(true);
confBuilder.setJSONStoreEnabled(true);
// Create configuration object
Configuration configuration = confBuilder.build();
// Create facebook instance
FacebookFactory ff = new FacebookFactory(configuration);
Facebook facebook = ff.getInstance();
try {
// Get facebook posts
String results = getFacebookPosts(facebook);
//String responce = stringToJson(results);
// Create file and write to the file
File file = new File("C:\\Facebook\\test.txt");
if (!file.exists())
{
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(results);
bw.close();
System.out.println("Writing complete");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String getFacebookPosts(Facebook facebook) throws FacebookException {
// Get posts for a particular search
ResponseList<Post> results = facebook.getFeed("Rebook");
//System.out.println(facebook.getId());
//System.out.println(facebook.getName());
//System.out.println(facebook.getFeed());
return results.toString();
}
public static String stringToJson(String data)
{ // Create JSON object
JSONObject jsonObject = JSONObject.fromObject(data);
JSONArray message = (JSONArray) jsonObject.get("message");
System.out.println("Message : "+message);
return "Done";
}
}
これは私にすべての列を与えていますが、私はID、メッセージと作成された日付にのみ興味があります。誰でも助けてくれますか?
要求しているアクセス許可のうち1つだけが実際に存在します。 APIをリクエストする際に、必要な_fields_を尋ねる必要があります。 https://developers.facebook.com/docs/graph-api/using-graph-api/#fields(どうすればfacebook4jを使って可能ですか、あなたは自分自身を見つけなければなりません。ドキュメント内にあるはずです。 ) – CBroe