1

这是代码,当帖子没有在“链接字段”上包含链接时,此代码工作得很好,可以在“字段消息”中发送带有或不带有链接的消息 在字段消息中发布的链接看起来像一个可点击的文本链接(http://www.mylinkposted.com/withoutmetadata/),您可以发送如下帖子:

嗨,我终于完成了我的新网站

http://mywebsite.com

根据您的经验,我将等待一些反馈。

但是,如果在“链接字段”中写入(复制)链接,它将从中提取元数据,并且帖子将包括描述,标题,标题,图像,来源......如果用户有帖子,它将看起来像在其他用户提要/墙上分享了一个链接,上面有所有的帖子参数,看起来很不错,但是通知它没有进入通知流,看起来真的很垃圾,只是发布而不发送通知,你认为什么可以解决这个问题问题?

                $app_id = "xxxxxxxxxxxxxxxx";

                $app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

                $site_url = "http://www.xxxxxxxxxxxxxxx.com/app00/index.php";



                尝试{
                    include_once "src/facebook.php";
                }catch(异常 $e){
                    错误日志($e);
                }

                $facebook = 新的 Facebook(数组(
                    'appId' => $app_id,
                    '秘密' => $app_secret,
                    ));


                $user = $facebook->getUser();

                如果($用户){

                    尝试{        
                        $user_profile = $facebook->api('/me');
                    }catch(FacebookApiException $e){
                        错误日志($e);
                        $用户=空;
                    }

                }

                如果($用户){
                    // 获取注销地址
                    $logoutUrl = $facebook->getLogoutUrl();
                }别的{
                    // 获取登录地址
                    $loginUrl = $facebook->getLoginUrl(数组(
                        '范围' => '发布流用户组',
                        'redirect_uri' => $site_url,
                        ));
                }

                如果($用户){

                    $查询=数组(
                        数组('方法' => 'GET','relative_url' => '/'.$user),
                        array('method' => 'GET', 'relative_url' => '/'.$user.'/friends'),
                        数组('方法' => 'GET','relative_url' => '/'.$user.'/groups'),
                        array('method' => 'GET', 'relative_url' => '/'.$user.'/likes'),
                        );


                    尝试{
                        $batchResponse = $facebook->api('?batch='.json_encode($queries), 'POST');
                    }catch(异常 $o){
                        错误日志($o);
                    }


                    //细绳。解码用作 PHP 数组。
                    $user_info = json_decode($batchResponse[0]['body'], TRUE);
                    $friends_list = json_decode($batchResponse[1]['body'], TRUE);
                    $groups = json_decode($batchResponse[2]['body'], TRUE);
                    $pages = json_decode($batchResponse[3]['body'], TRUE);



                    if(isset($_POST['submit_x'])){
                        if($_POST['message'] || $_POST['link'] || $_POST['picture']) {
                            $body = 数组(
                                '消息' => $_POST['消息'],
                                '链接' => $_POST['链接'],
                                );

                            $batchPost=array();

                            $i=1;
                            $标志=1;
                            foreach($_POST as $key => $value) {
                                if(strpos($key,"id_") === 0) {
                                    $batchPost[] = array('method' => 'POST', 'relative_url' => "/$value/feed", 'body' => http_build_query($body));
                                    如果($i++ == 50){
                                        尝试{
                                            $multiPostResponse = $facebook->api('?batch='.urlencode(json_encode($batchPost)), 'POST');                          
                                        }catch(FacebookApiException $e){
                                            错误日志($e);
                                            echo("批量发布失败");
                                        }
                                        $标志=0;
                                        未设置($batchPost);
                                        $i=1;
                                    }
                                }
                            }
                            如果(isset($batchPost)){
                                尝试{
                                    $multiPostResponse = $facebook->api('?batch='.urlencode(json_encode($batchPost)), 'POST');
                                }catch(FacebookApiException $e){
                                    错误日志($e);
                                    echo("批量发布失败");
                                }
                                $标志=0;
                            }

                        }
                        别的 {
                            $标志=2;
                        }
                    }
                }

4

0 回答 0