-
Notifications
You must be signed in to change notification settings - Fork 109
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Поддержка работы с чатами #71
Comments
Так же предлагаю добавить возможность получать amojo_id опционально, сейчас пришлось внести изменения в файл /src/Request/Request.php: protected function prepareEndpoint($url)
{
if ($this->v1 === false) {
$query = http_build_query(array_merge($this->parameters->getGet(), [
'USER_LOGIN' => $this->parameters->getAuth('login'),
'USER_HASH' => $this->parameters->getAuth('apikey'),
// Изменение
'amojo' => 'Y',
// end
]), null, '&');
} else {
$query = http_build_query(array_merge($this->parameters->getGet(), [
'login' => $this->parameters->getAuth('login'),
'api_key' => $this->parameters->getAuth('apikey'),
]), null, '&');
}
return sprintf('https://%s%s?%s', $this->parameters->getAuth('domain'), $url, $query);
} |
Планирую вместе с переходом на новое API. На базе старого это сделать не представляется возможным. |
Можете рассказать подробно, что делает |
|
@dotzero В новой версии не собираетесь использовать Guzzle?
У меня получилось сделать реализацию работы с чатами используя вашу библиотеку, и guzzle: //...
$params['account_id'] = $amo->account->apiCurrent()['amojo_id'];// Получаю account_id для работы с чатами
//...
App::$router->any('/hookw.php', function () use ($params, $client, $amo) {// Хук для получения сообщений из WhatsApp
require_once __DIR__ . '/../whatsapi.php';
$data = json_decode(file_get_contents('php://input'), true);
$message = $data['messages'][0];
$tmp = explode("@", $message['author']);
$phone = $tmp[0];
$body = json_encode([
'account_id' => $params['account_id']
]);
$signature = hash_hmac('sha1', $body, $params['secret']);
$headers = [
"cache-control" => "no-cache",
"content-type" => "application/json",
"x-signature" => $signature
];
$options = [
'body' => $body,
'headers' => $headers,
];
// Подключаю аккаунт к каналу(чату)
$response = $client->post('https://amojo.amocrm.ru/v2/origin/custom/' . $params['channel_id'] . '/connect', $options);
// Scope id для публикации сообщений в аккаунт
$params['scope_id'] = json_decode($response->getBody(), true)['scope_id'];
$user_id = QB::table('users')->where('phone', '=', $phone)->first()->id;
$conversation_id = QB::table('conversations')->where('user_id', '=', $user_id)->first()->id;
if ($conversation_id) {
$body = json_encode([
'event_type' => 'new_message',
'payload' => [
'timestamp' => time(),
'msgid' => uniqid(),
'conversation_id' => $conversation_id,
'sender' => [
'id' => $user_id,
'avatar' => 'https://www.amocrm.ru/version2/images/logo_bill.png',
'name' => $message['senderName'],
'profile' => [
'phone' => $phone,
],
'profile_link' => 'http://example.com',
],
'message' => [
'type' => 'text',
'text' => $message['body']
]
]
]);
$headers = [
"cache-control" => "no-cache",
"content-type" => "application/json",
"x-signature" => hash_hmac('sha1', $body, $params['secret'])
];
$options = [
'headers' => $headers,
'body' => $body
];
$response = $client->post("https://amojo.amocrm.ru/v2/origin/custom/{$params['scope_id']}", $options);
}
}); |
а как вы получаете сообщения из WA? |
Собираюсь |
@shift-reality Написан свой хук для получения сообщений от туда |
@edvardpotter а подробнее можете, плиз? также необходима такая возможность просто, реализовали через веб, но глючит.... |
Планируете ли добавить функционал для работы с amo чатами?
The text was updated successfully, but these errors were encountered: