使用 Trello 邀请他人 API

Inviting people with Trello API

我正在尝试通过电子邮件邀请某人从我的网站加入 Trello。这里是API reference。当我尝试邀请他时,简单的回复是 "invalid key"。这是我的功能:

public function inviteEmployeeToTrello ($email, $name, $isAdmin)
{
    $organazationTrelloID = 'myOrganazationID';
    $trelloAuthToken = 'myTrelloAuthToken';
    $trelloInviteUrl = 'https://trello.com/1/organizations/'.$organazationTrelloID.'/members';

    if ($isAdmin == 1)
    {
        $type = 'admin';
    }
    else
    {
        $type = 'normal';
    }

    $fields = array(
        'fullName' => $name,
        'email' => $email,
        'type' => $type,
        'token' => $trelloAuthToken
    );

    // open connection
    $ch = curl_init();

    // set the url, number of PUT vars, PUT data
    curl_setopt($ch, CURLOPT_URL, $trelloInviteUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

    // exec
    $replyRaw = curl_exec($ch);
    $reply = json_decode($replyRaw, true);

    // close connection
    curl_close($ch);

    dd($ch);
}

正如错误代码所说,您忘记传递 application key. Here's an example from the API reference :

https://api.trello.com/1/organizations/publicorg?members=all&member_fields=username,fullName&fields=name,desc&key=[application_key]&token=[optional_auth_token]

您必须将其包含在查询中,因此在您的情况下,将其添加到 $fields数组:

$fields = array(
    'fullName' => $name,
    'email' => $email,
    'type' => $type,,
    'key' => $trelloAppKey
    'token' => $trelloAuthToken
);

CURLOPT_POSTFIELDS 不想要 JSON, 如果你想要一个 urlencoded 请求,使用 http_build_query($fields) ,或者如果你想要一个 multipart/form-data 请求,直接给它 $fields 数组。 (不过,API 文档似乎没有提及它接受的请求类型。urlencoded 是最常见的一种。)