Facebook C # SDK - Использование массива в вызовах Api, как в PHP - PullRequest
0 голосов
/ 24 марта 2011

Я пытаюсь использовать этот блок кода php в C #:

 $fb->api(array(
    'method' => 'events.invite',
    'eid' => $event_id,
    'uids' => $id_array,
    'personal_message' => $message,
));

Я пробовал это:

            string[,] array = new string[3, 2];
            array[0, 0]= "method";
            array[0, 1] = "events.invite";
            array[1, 0] = "eid";
            array[1, 1] = IdEvent.ToString();
            array[2, 0] = "uids";
            array[2, 1] = "100000339376504";

            users = app.Api(array.ToString());

Но без успеха я получаю этоerror:

error = {"type": "OAuthException", "message": "(# 803) Некоторые из запрошенных псевдонимов не существуют: system.string [,]"}

Может кто-нибудь помочь мне построить этот массив?В этом проекте у меня есть версия 4 Facebook C # SDK.

Спасибо

1 Ответ

1 голос
/ 28 марта 2011

C # SDK не поддерживает передачу аргументов в виде массивов.Чтобы уточнить, что вы делаете, код PHP и код массива C # не совпадают функционально.Правильная «подстановка» к коду PHP - это словарь.

Так что, чтобы исправить свой код, вы захотите сделать это вместо этого:

var parameters = new Dictionary<string, object>() {
    { "method", "events.invite" },
    { "eid", IdEvent },
    { "uids", "100000339376504" }
};
var users = app.Api(parameters);

Также важно отметить, что яЯ не использую переопределение Api (string path).Вы должны вызывать метод Api (параметры IDictionary ).Это два совершенно разных аргумента.Правильное использование переопределения строки выглядит примерно так:

var result = app.Api ("me / friends");

Наконец, я бы посоветовал вам взглянуть на График API , а не API остальных.API остальных устарел.

...