【问题标题】:Facebook API is not working properlyFacebook API 无法正常工作
【发布时间】:2014-06-19 21:23:50
【问题描述】:

我正在使用 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>}
?>

谁能告诉我是什么问题?

仅供参考:我尚未提交我的应用以供审核。

谢谢,

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

【问题讨论】:

  • 嗯,我的代码看起来很老。 “我还没有提交我的应用程序以供审核”是指您已经拥有一个但尚未针对重大更改进行审核,或者该应用程序是新的?这些将是不同的问题(如果应用程序是新的,您需要从 Facebook 审核除标准授权之外的任何内容)
  • @tattvamasi 我的应用是新的。但如果你是对的,那么它不应该适用于我的一个 id(我在其中创建了应用程序),但它可以工作。它正在从该用户帐户导入照片。还有一个更新,请查看我更新的问题...
  • 好的,我已经准备好发布我的答案了 :) 谢谢,您的更新非常有用

标签: php facebook facebook-graph-api


【解决方案1】:

如您所说,如果您的申请是新的,您需要先通过 Facebook 审核。 应用程序要求您(开发人员)的用户权限与应用程序要求其他用户的用户权限不同,这意味着这些权限仅对您可用,用于测试。一旦您测试每个操作并将其提交以供审核,并且该操作被批准,该操作将可供其他用户使用。

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

执行此操作,访问https://developers.facebook.com,点击应用程序,选择您的应用程序,点击“状态和审查”(左侧),向下滚动页面,点击“提交项目以供批准”,提交所需的权限获取用户的照片,解释您的应用为什么需要它,如何使用它,提供示例和屏幕截图。

如果获得批准,该功能将适用于您的应用,并且不仅可供您使用,而且可供任何人使用。这些更改已于 2014 年 4 月 30 日生效。您可以阅读更多内容here,尤其是其中的说明

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

希望对你有所帮助。

【讨论】:

  • thanx 的答案...这真的很有帮助...非常感谢你:) 我对 google php sdk 有同样的问题...你能解决吗?
  • 链接到我关于谷歌问题的问题(类似):stackoverflow.com/questions/24308664/…
  • 很高兴我能帮上忙!顺便说一句,您甚至需要立即批准类似的操作(例如通过应用程序)(刚刚实现,哈哈)。我也去谷歌看看,看看能不能帮忙。
  • 你好@tattvamasi,我遇到了一个问题。请访问以下问题:stackoverflow.com/questions/24762287/…我已经发布了很多天,但没有得到任何回复。你能帮我解决这个问题吗?
  • 您好 tattvamasi,我在从用户时间线导入照片时遇到问题。如果用户上传了多张图片,那么这些图片不会被导入我的网站。否则一切都按预期工作。你能帮我解决这个问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-07
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 2016-07-09
相关资源
最近更新 更多