Ошибка публикации в Facebook: Требуется один из параметров - PullRequest
0 голосов
/ 26 февраля 2019

У меня проблемы с отправкой моего постоянного меню на мою страницу в Facebook, этот php я использую для публикации, он работал в прошлом, но теперь возвращает эту ошибку:

Unsuccesfull POST /ПОЛУЧИТЬ.(# 100) Требуется один из параметров: get_started, persistent_menu, target_audience, whitelisted_domains, приветствие, account_linking_url, payment_settings, home_url

здесь код:

<?php

//$page_access_token = AQUIPRESTAMOS_PAGE_ACCESS_TOKEN;
$page_access_token = BOTGENES_PAGE_ACCESS_TOKEN;

$url = 'https://graph.facebook.com/v3.2/me/messenger_profile?access_token='. $page_access_token;


$persistent_menu = array(
    "persistent_menu"=> [
        '{  
            "locale":"default",
            "composer_input_disabled": false,
            "call_to_actions":[
            {
            "title":"INFORMACIÓN GENERAL",
            "type":"nested",
            "call_to_actions":[
                {
                    "title":"Información sobre préstamos",
                    "type":"postback",
                    "payload":"Quiero información sobre los prestamos"
                },
                {
                    "title":"Requisitos",
                    "type":"postback",
                    "payload":"¿Cuáles son los requisitos?"
                },
                {
                    "title":"Jubilados y Pensionados",
                    "type":"postback",
                    "payload":"¿Dan préstamos a Jubilados y Pensionados?"
                },
                {
                    "title":"Relación de dependencia",
                    "type":"postback",
                    "payload":"¿Dan créditos a empleados privados?"
                },
                {
                    "title":"Más",
                    "type":"nested",
                    "call_to_actions":[
                        {
                            "title":"Monotributistas",
                            "type":"postback",
                            "payload":"¿Dan préstamos a Monotributistas?"
                        },
                        {
                            "title":"Estoy en el Veraz",
                            "type":"postback",
                            "payload":"¿Dan préstamos aún estando en el Veraz?"
                        },
                        {
                            "title":"Estoy en el Codeme",
                            "type":"postback",
                            "payload":"¿Da préstamos aún estando en el Codeme?"
                        },
                        {
                            "title":"Extranjeros sin DNI Argentino",
                            "type":"postback",
                            "payload":"¿Dan préstamos a personas extranjeras sin DNI Argentino?"
                        }
                    ]
                }
            ]
            },
            {

                "title":"FUNCIONAMIENTO",
                "type":"nested",
                "call_to_actions":[
                    {
                        "title":"¿Cómo funciona?",
                        "type":"postback",
                        "payload":"¿Cómo funciona?"
                    },
                    {
                        "title":"¿Cobran anticipo?",
                        "type":"postback",
                        "payload":"¿Se cobra algún anticipo?"
                    },
                    {
                        "title":"Planes de financiación",
                        "type":"postback",
                        "payload":"¿Cuáles son los planes de financiación?"
                    },
                ]
            },
            {
            "title":"AYUDA",
            "type":"nested",
            "call_to_actions":[
                {
                    "title":"¿Qué es el CBU?",
                    "type":"postback",
                    "payload":"¿Qué es el CBU?"
                },
                {
                    "title":"Sin servicio a mi nombre",
                    "type":"postback",
                    "payload":"No tengo un servicio a mi nombre"
                },
                {
                    "title":"Estado de mi solicitud",
                    "type":"postback",
                    "payload":"Quiero saber el estado de mi solicitud"
                },
                {
                    "title":"Contacto",
                    "type":"nested",
                    "call_to_actions":[
                        {
                            "title":"Información de contacto",
                            "type":"postback",
                            "payload":"¿Cómo puedo contactarme con ustedes?"
                        },
                        {
                            "title":"Horario de atención",
                            "type":"postback",
                            "payload":"¿Cuál es el horario de atención?"
                        },
                        {
                            "title":"Ubicación las oficinas",
                            "type":"postback",
                            "payload":"¿Dónde se encuentran las oficinas?"
                        },
                    ]
                }
            ]
        }
        ]
        }'
    ]
);

$data = $persistent_menu;
$get_params = '&fields=persistent_menu';
//$url .= $get_params; 
$response = do_curl($url,'POST',$data);
//$response = do_curl($url,'GET');

$decoded_response = json_decode($response, true);

if (array_key_exists('result',$decoded_response) && $decoded_response['result'] == 'success'){
    echo 'Succesfull POST';
}
else if (array_key_exists('error',$decoded_response)){
    echo 'Unsuccesfull POST/GET. '. $decoded_response['error']['message'];
}
else
    echo "Succesfull GET\n\n".$response;


function do_curl($url, $method, $data=Null){

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLINFO_HEADER_OUT, true);
    if ($method == 'POST') {
        $payload = json_encode($data);
        $header = array(
            'Content-Type: application',
            'Content-Length: ' . strlen($payload)
        );
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    }
    else curl_setopt($ch, CURLOPT_POST, false);

    $response = curl_exec($ch);
    curl_close($ch);

    return $response;

}

?>

Может кто-нибудь помочьмне

...