Я работаю над Globe Labs API для отправки SMS.Но прежде чем я смогу отправить SMS, необходимо подписаться на номер мобильного телефона, на который я хочу отправить сообщение, чтобы я мог получить access_token
, который будет использоваться при отправке SMS.
Существует 2 варианта подписки - через SMS или через веб-форму.Я смог использовать первый вариант без каких-либо проблем.Но я не могу заставить работать второй вариант.
Согласно документации , после того, как абонент ввел полученный пин-код подтверждения на странице и нажал кнопку «Подтвердить», чтобы авторизовать подписчика.затем страница будет перенаправлена на redirect_uri моего приложения, и ей будет передан (с помощью GET) параметр Code.
Вот часть, где я не могу заставить ее работать:
Чтобы получить токен доступа, вам нужно выполнить запрос POST через https://developer.globelabs.com.ph/oauth/access_token с вашими «app_id», «app_secret» и «code» в качестве параметров.Параметры "access_token" и "subscriber_number" будут затем возвращены в ваш URI перенаправления в качестве ответа.
Вот мой код:
$app_id = '<my_app_id>';
$app_secret = '<my_app_secret>';
$content = array(
'app_id' => $app_id,
'app_secret' => $app_secret,
'code' => $this->input->get('code')
);
$url = 'http://developer.globelabs.com.ph/oauth/access_token';
$this->post_to_url($url, $content);
function post_to_url($url, $data) {
$fields = '';
foreach($data as $key => $value) {
$fields .= $key . '=' . $value . '&';
}
rtrim($fields, '&');
$post = curl_init();
curl_setopt($post, CURLOPT_URL, $url);
curl_setopt($post, CURLOPT_POST, count($data));
curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($post);
curl_close($post);
if(!$result){
die('Error: "' . curl_error($post) . '" - Code: ' . curl_errno($post));
} else {
$this->Sms_Api_model->save_subscriber_data();
}
}
Это мой URL перенаправления: http://api.forexcargo.us/sms_api/globelabs_api?code=[code]
И результат я получаю:
Ошибка: "" - Код:
РЕДАКТИРОВАТЬ:
Я пытался использовать форму и отправлять свои данные методом POST, и это сработало.Так что это действительно может быть моя установка локона.
Что я делаю не так?Любая помощь высоко ценится.Спасибо!