Facebook API无法正常运行

时间:2014-06-19 12:00:34

标签: php facebook facebook-graph-api

我正在使用Facebook提供的图形API。它不能按我的意愿工作。我正在使用此API将用户的照片导入我的网站。但我无法导入它们。事实上,我可以从我创建应用程序的用户帐户导入图像。但是从任何其他帐户我无法导入图像。 我的索引文件如下:

的index.php

<?php
/***********************************************************************
 * Plugin Name: Facebook Plugin
 * Plugin URI: http://www.picpixa.com/
 * Version: Current Version
 * Author: Ashish Shah
 * Description: Plugin To Import Images From User's Facebook Account
 *              as well as post the image of personalized product to
 *              his/her facebook account
 **********************************************************************/
include_once "fbmain.php";
ini_set("display_errors",0);
?>

        <script type="text/javascript">
            function streamPublish(name, description, hrefTitle, hrefLink, userPrompt) {
                FB.ui({method: 'feed',
                    message: userPrompt,
                    link: hrefLink,
                    caption: hrefTitle,
                    picture: ''
                });
                //http://developers.facebook.com/docs/reference/dialogs/feed/
            }
            function publishStream() {
                streamPublish("Stream Publish", 'Checkout personalized products at www.picpixa.com. I found some of them are just awesome!', 'Checkout www.picpixa.com', 'http://www.picpixa.com', "Personalized Products");
            }
        </script>

        <style type="text/css">
            .box{
                margin: 5px;
                border: 1px solid #60729b;
                padding: 5px;
                width: 500px;
                height: 200px;
                overflow:auto;
                background-color: #e6ebf8;
            }
        </style>
        <div id="fb-root"></div>
        <script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
        <script type="text/javascript">
            FB.init({
                appId: '<?= $fbconfig['appid'] ?>',
                status: true, // check login status
                cookie: true, // enable cookies to allow the server to access the session
                xfbml: true // parse XFBML
            });
        </script>
        <?php if (!$user) { ?>
            You have to login using Facebook Login Button to see api calling result.
            <a href="<?= $loginUrl ?>"><img src="Images/login.png"></a>
        <?php }// else { ?>
            <!-- <a href="<?//= $logoutUrl ?>"><img src="Images/logout.png"></a> -->
        <?php //} ?>

        <!-- all time check if user session is valid or not -->
        <?php if ($user) { ?>
            <form method="post" action="index.php">
                <table border="0" cellspacing="3" cellpadding="3">
                <!-- Data retrived from user profile are shown here -->
                <tr>
                            <?php
                                $i=0;
                $showBtn=false;
                                $albums = $facebook->api("/me/albums");
                echo "Albums:<pre>";
                print_r($albums);
                echo "</pre>";
                                foreach($albums['data'] as $album){
                                    // get all photos for album
                                    $photos = $facebook->api("/{$album['id']}/photos");
                echo "Photos<pre>";
                print_r($photos);
                echo "</pre>";
                                    foreach($photos['data'] as $photo){
                                        if($i%5 == 0)
                                        {
                                            echo "</tr>";
                                            echo "<tr>";
                                        }
                            ?>
                            <td align="center"><input type="checkbox" id="facebook_<?=$i;?>" name="facebook[]" value="<?php echo $photo['source']?>"></td>
                            <td><img src="<?php echo $photo['source']?>" width = "150px" height = "150px" /></td>
                            <?php
                                    $i++;
                                    $showBtn=true;
                                    }
                                }
                                if($showBtn){
                                    echo"<tr><td><input type='submit' name='copy' value='Copy Selected Files' ></td></tr>";
                                }
                            ?>
                </tr>
            </table>
        </form>
<?php }?>

 <?php 
    if(isset($_POST['copy']))
    {<My Code After importing Images>}
?>

谁能告诉我这是什么问题?

仅供参考:我还没有提交我的应用程序进行审核。

谢谢,

更新:我找到了一个更新。在一个用户帐户(我在其中创建了应用程序)中,要求用户对公共个人资料以及照片进行授权。但在另一个用户帐户中,它仅针对用户的公开个人资料要求用户授权。

1 个答案:

答案 0 :(得分:1)

如果您的申请是新的,则需要先进行Facebook审核。 用户对应用程序的权限要求您(开发人员)与应用程序询问其他用户的权限不同,这意味着这些权限仅供您使用,以便进行测试。在您测试每个操作并提交以供审核并且操作获得批准后,该操作将可供其他用户使用。

要提交审核操作,您需要在帐户中测试该操作。如果应用程序甚至不让您(开发人员)测试您想要为每个用户实施的操作,那么Facebook工作人员将无法审核您的应用程序,以及它需要的操作(和权限)工作

Todo,访问https://developers.facebook.com,点击应用,选择您的应用,点击“状态和审核”(左侧),向下滚动页面,点击“提交项目进行审批”,然后提交获取用户照片所需的权限,解释您的应用程序需要它的原因,使用方式,提供示例和屏幕截图。

如果获得批准,该功能将适用于您的应用,不仅适用于您,也适用于任何人。这些更改于2014年4月30日生效。您可以阅读更多here,尤其是

  

为了让您的应用访问某个人的其他元素   Facebook个人资料(读取权限)或将内容发布到Facebook   代表他们(写权限),你需要提交   评论

我希望这有帮助。