12

AndroidアプリからFacebookの友達全員にアプリリクエストを送信する方法を知りたいです。グラフAPIで試しました。しかし、それを成し遂げることができませんでした。

https://graph.facebook.com/apprequests?ids=friend1,friend2&message='Hi'&method=post&access_token=ACCESS_TOKEN

これは重複した質問であることを知っています。しかし、まだ答えを見つけることができませんでした。上記の API でこのエラーが発生しています。

"All users in param ids must have accepted TOS."

ワンクリックでモバイルからすべての友達にアプリリクエストを送信する方法があることを願っています. 共有してください。

4

2 に答える 2

6

表示されるエラー メッセージ (「パラメーター ID 内のすべてのユーザーは TOS に同意する必要があります」) は、アプリに接続していないユーザーにアプリで生成された要求を送信しようとしているためです。

こちらの開発者向けドキュメントを参照してください。

リクエスト ダイアログで送信されるリクエストとアプリで生成されたリクエストは異なるため、アプリで生成されたリクエストを使用してユーザーをアプリに招待することはできません。

グラフ API を介して Facebook アプリ リクエストを送信することはできません。アプリ リクエストの Java スクリプト ダイアログを使用してリクエストを送信できますが、ドキュメントで詳しく説明されているように、「to」プロパティでユーザーの ID を指定するだけで済みます。

サンプル関数:

<script>
  FB.init({ appId: '**appId**', status: true, cookie: true, xfbml : true });

  function sendRequest(to) {
    FB.ui({method: 'apprequests', to: to, message: 'You should learn more about this awesome site.', data: 'tracking information for the user'});
    return false;
  }
</script>

次に、各画像のonclickを次のようなものに配線するだけですonclick="return sendRequest('**friendId**');"

また、この関数を JavaScript で呼び出すこともできます。すべての友達に写真を提供します。また、現在同じアプリを使用している友人のグループ。それらのいずれかにリクエストを送信できます。

function sendRequestViaMultiFriendSelector() {
    FB.ui({
        method: 'apprequests',
        message: "You should learn more about this awesome site."
    });     
}

Facebook 友達リクエスト - エラー - 「param ids のすべてのユーザーは TOS に同意している必要があります」を参照してください。

于 2013-01-21T10:18:47.567 に答える
0

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 つのオプションしかありません。

于 2013-01-21T05:12:55.577 に答える