我正在使用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>}
?>
谁能告诉我这是什么问题?
仅供参考:我还没有提交我的应用程序进行审核。
谢谢,
更新:我找到了一个更新。在一个用户帐户(我在其中创建了应用程序)中,要求用户对公共个人资料以及照片进行授权。但在另一个用户帐户中,它仅针对用户的公开个人资料要求用户授权。
答案 0 :(得分:1)
如果您的申请是新的,则需要先进行Facebook审核。 用户对应用程序的权限要求您(开发人员)与应用程序询问其他用户的权限不同,这意味着这些权限仅供您使用,以便进行测试。在您测试每个操作并提交以供审核并且操作获得批准后,该操作将可供其他用户使用。
要提交审核操作,您需要在帐户中测试该操作。如果应用程序甚至不让您(开发人员)测试您想要为每个用户实施的操作,那么Facebook工作人员将无法审核您的应用程序,以及它需要的操作(和权限)工作
Todo,访问https://developers.facebook.com,点击应用,选择您的应用,点击“状态和审核”(左侧),向下滚动页面,点击“提交项目进行审批”,然后提交获取用户照片所需的权限,解释您的应用程序需要它的原因,使用方式,提供示例和屏幕截图。
如果获得批准,该功能将适用于您的应用,不仅适用于您,也适用于任何人。这些更改于2014年4月30日生效。您可以阅读更多here,尤其是
为了让您的应用访问某个人的其他元素 Facebook个人资料(读取权限)或将内容发布到Facebook 代表他们(写权限),你需要提交 评论
我希望这有帮助。