developer.facebook.com で「Hackbook」のデモを見たことがありますか?
HACKBOOK APP REQUESTはこちらから参照できます。
以下のコードで、アプリのリクエストを 1 人の友人にのみ投稿することができます。
コード:
Bundle params = new Bundle();
JSONObject attachment = new JSONObject();
JSONObject properties = new JSONObject();
JSONObject prop1 = new JSONObject();
JSONObject prop2 = new JSONObject();
JSONObject media = new JSONObject();
JSONStringer actions = null;
try {
attachment.put("name", "YOUR_APP");
attachment.put("href", "http://www.google.com/");
attachment.put("description", "ANY_TEXT");
media.put("type", "image");
media.put("src", "IMAGE_LINK");
media.put("href", "http://www.google.com/");
attachment.put("media", new JSONArray().put(media));
prop1.put("text", "www.google.com");
prop1.put("href", "http://www.google.com");
properties.put("Visit our website to download the app", prop1);
/* prop2.put("href", "http://www.google.com");
properties.put("iTunes Link ", prop2);*/
attachment.put("properties", properties);
Log.d("FACEBOOK", attachment.toString());
actions = new JSONStringer().object()
.key("name").value("APP_NAME")
.key("link").value("http://www.google.com/").endObject();
} catch (JSONException e) {
e.printStackTrace();
}
System.out.println("ACTIONS STRING: "+actions.toString());
System.out.println("ATTACHMENT STRING: "+attachment.toString());
params.putString("actions", actions.toString());
params.putString("attachment", attachment.toString()); // Original
params.putString("to", "YOUR_FRIEND_FACEBOOK_ID");
Utility.mFacebook.dialog(getParent(), "stream.publish", params,new PostDialogListener());
public class PostDialogListener extends BaseDialogListener {
@Override
public void onComplete(Bundle values) {
final String postId = values.getString("post_id");
if (postId != null) {
Toast.makeText(getApplicationContext(), ""+getResources().getString(R.string.facebook_response_msg_posted), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), ""+getResources().getString(R.string.facebook_response_msg_not_posted), Toast.LENGTH_SHORT).show();
}
}
}
上記のコードは、Apprequest を 1 人の友人のウォールにのみ投稿したい場合に最適です。すべてに投稿したい場合は、すべての友達に対して実行される asynckTask を作成し、すべてのウォールに App リクエストを投稿する必要があります。
アップデート
これは、すべての Facebook の友達にリクエストを送信するために同じ作業を行った PHP のリンクです。
[ここでは、Facebook が 15 ~ 20 人以上の友達に友達リクエストを送信することをブロックしていることを明確に説明しています。
これを行うには、上記のコードを AsyncTask で使用して、フレンド リクエストをすべてのフレンドに 1 つずつ送信するという 1 つのオプションしかありません。