2014-06-19 100 views
0

我正在使用Facebook提供的图形API。它不是按我想要的那样工作。我正在使用此api将用户的照片导入到我的网站。但我无法导入它们。事实上,我可以从我创建应用程序的用户帐户导入图像。但从任何其他帐户,我无法导入图像。 我的索引文件如下:Facebook 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>} 
?> 

谁能告诉我是什么问题?

供参考:我还没有提交我的应用程序的审查呢。

谢谢

更新:有一个更新,我发现。在一个用户帐户(我已创建应用程序)中是要求用户授权公共个人资料以及照片。但在另一个用户帐户中,它只是要求用户的授权才能用于用户的公开个人资料。

+0

嗯,代码看起来老了汤姆我。 “我还没有提交我的应用程序进行审查”意味着你已经有一个,但没有审查的突破变化,或该应用程序是新的?这些将是不同的问题(如果应用程序是新的,你需要从Facebook审查基本上除标准授权之外的任何东西) – tattvamasi

+1

@tattvamasi我的应用程序是新的。但如果你是对的,那么它不应该为我的一个身份证(我已经创建应用程序)工作,但它的工作原理。它从该用户帐户导入照片。 还有一个更新请看我更新的问题... –

+0

好吧,我准备发布我的asnwer :)谢谢,你的更新是非常有用的 – tattvamasi

回答

1

如果您的应用程序如您所说是新的,则需要先进行Facebook审阅。 用户对应用程序要求您(开发人员)的权限与应用程序询问其他用户的权限不同,这意味着只有您可以使用这些权限才能进行测试。一旦您测试了每个操作并将其提交以供审核并且该操作已获批准,那么该操作将可供其他用户使用。

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

藤本,请访问:https://developers.facebook.com,点击应用,选择您的应用程序,点击“状态&评论”(左),sroll下来的页面,点击“提交审批的项目”,提交所需的权限获取用户的照片,解释您的应用需要它的原因,如何使用它,提供示例和屏幕截图。

如果获得批准,该功能将为您的应用程序生效,并且不仅适用于您,还适用于任何人。这些变化去住在4月30日2014年你可以阅读更多here,特别是当它说

为了使您的应用程序访问一个人的 Facebook的个人资料的其他元素(读取权限),或将内容发布至Facebook 代表他们(写权限),您将需要递交 审核

我希望这帮助。

+0

thanx的答案... 这真的很有用...非常感谢你:) 我有同样的问题,与谷歌PHP SDK ...你能解决这个问题吗? –

+0

链接到我关于谷歌问题的问题(相似): http://stackoverflow.com/questions/24308664/google-api-is-not-working-properly –

+1

很高兴我很乐于助人!顺便说一句,你甚至需要像现在批准的行动(如通过应用程序)(刚刚意识到,大声笑)。我也会检查谷歌,看看我能否提供帮助。 – tattvamasi