多个图像附件中的Messenger平台响应

时间:2018-02-17 08:09:54

标签: php arrays facebook-messenger-bot

我希望我的代码多次回复我的用户。

我有

$photo_dir = "../shop.ewconline.site/products/".$productnum4."/images/*";

$ productnum4是分隔它们的产品内部文件夹的名称。

示例:$productnum4 = 5004;

检查此目录中的文件数量,这是

中的3个图像.jpg文件
$dir = count(glob($photo_dir,GLOB_BRACE));

然后我会用

for($p=1;$p<=$dir;$p++){

根据$ dir的数量来循环此链接

$photo_url[$p] = "https://shop.ewconline.site/products/$productnum/images/$p.jpg";

并使用此部分回复用户

$response = [
'recipient' => [ 'id' => $senderId ],
'message' => [ 
'attachment' => [ 
'type' => 'image',
'payload' => [
'is_reusable' => true,
'url' => $photo_url[$p],
]
],
]
];
}

当前输出

- 这会显示图片 -

用户只能收到1张图片。

期望输出

- 这会显示图片 - - 这会显示图片 - - 这会显示图片 -

用户将收到3张图片。

希望能有所帮助的人。

2 个答案:

答案 0 :(得分:0)

您正在使用键传递数组,因此从数组中删除键并仅传递数组。然后你会得到三个网址。

$response = [
'recipient' => [ 'id' => $senderId ],
'message' => [ 
'attachment' => [ 
'type' => 'image',
'payload' => [
'is_reusable' => true,
'url' => $photo_url, // Removed key
]
],
]
];
}

答案 1 :(得分:0)

建议代码:

$senderId = 1;
$productnum4 = 5004;
$photo_dir = "../shop.ewconline.site/products/".$productnum4."/images/*";

foreach(glob($photo_dir,GLOB_BRACE) as $filename){
    $response[]=[
        'recipient' => [ 'id' => $senderId ],
        'message' => [ 
            'attachment' => [ 
                'type' => 'image',
                'payload' => [
                    'is_reusable' => true,
                    'url' => "https://shop.ewconline.site/products/$productnum/images/$filename";
                ]
            ],
        ]
    ];
}
var_export($response);