Я пытаюсь пригласить человека по электронной почте в Trello с моего сайта. Здесь Справочник по API. Когда я пытаюсь пригласить его, простой ответ — «неверный ключ». Вот моя функция:
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);
}
CURLOPT_POSTFIELDS не хочет JSON,
если вы хотите запрос с кодировкой urlencoded, используйте http_build_query ($ fields) или если вы хотите запрос multipart / form-data, просто передайте ему массив $ fields напрямую. (Документация API, похоже, не упоминает, какие типы запросов он принимает, хотя urlencoded является наиболее распространенным.)
Как говорит код ошибки, вы забыли передать ключ приложения. Вот пример из Справочник по API :
https://api.trello.com/1/organizations/publicorg?members=all&member_fields = имя пользователя, FULLNAME&поля = имя, по убыванию&ключ = [application_key]&маркер = [optional_auth_token]
Вы должны включить его в свой запрос, следовательно, в вашем случае, добавить его в
$fields
массив:
$fields = array(
'fullName' => $name,
'email' => $email,
'type' => $type,,
'key' => $trelloAppKey
'token' => $trelloAuthToken
);