По поводу вашей конкретной ошибки, похоже, документы Facebook заставили вас сделать это неправильно: FAIL
Вы должны отправить запрос POST, который запрашивает cURL, но данные запроса не должны быть частью URL. Вместо этого вы должны использовать опцию -d, чтобы указать отправленные данные и использовать URL до? знак, как показано в этот суперпользователь вопрос
Но! Даже если вы используете правильный метод HTTP, вы получите сообщение об ошибке:
Неподдерживаемый тип: 'device_code'. Поддерживаемые типы: web_server, user_agent, client_cred, username
Теперь самая лучшая часть: это происходит, если вы не используете самиклиенты client_id facebook, использованные для их демонстрации ! В этом случае вы получите ответ 200 (ОК) с ожидаемым кодом, user_code и valid_uri. Очевидно, их применение несколько отличается от тех, с которыми мы пытаемся работать. Нет подсказки на странице конфигурации приложения по этому поводу.
Кстати, я не нашел никого, кто бы утверждал, что он успешно использовал Device Flow от Facebook, не так ли?