douti9286 2019-02-26 14:48
浏览 63

Facebook发布错误:需要其中一个参数

Im having trouble to POST my persistent menu to my facebook page, this is the php I use to post, it worked in the past, but now it returns this error:

Unsuccesfull POST/GET. (#100) Requires one of the params: get_started,persistent_menu,target_audience,whitelisted_domains,greeting,account_linking_url,payment_settings,home_url

here the code:

<?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

".$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;

}

?>

Can somebody help me?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 #MATLAB仿真#车辆换道路径规划
    • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
    • ¥15 数据可视化Python
    • ¥15 要给毕业设计添加扫码登录的功能!!有偿
    • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
    • ¥15 微信公众号自制会员卡没有收款渠道啊
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘