Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP仅使用PHP将照片上载到用户facebook wall_Php_Facebook_Facebook Graph Api_Facebook Php Sdk - Fatal编程技术网

PHP仅使用PHP将照片上载到用户facebook wall

PHP仅使用PHP将照片上载到用户facebook wall,php,facebook,facebook-graph-api,facebook-php-sdk,Php,Facebook,Facebook Graph Api,Facebook Php Sdk,我正在尝试编写一个php脚本,可以将每日照片上传到我的个人facebook墙上。我需要这是在任何时候,而不仅仅是当我登录。我想知道是否可以只使用php将照片上传到我的墙上,或者我是否需要使用具有正确权限的应用程序。如果是这样,我必须亲自安装该应用程序,并为我的页面授予正确的权限才能实现这一点,如果可能的话,这可以自动完成吗 我想做什么: 简而言之,我希望一个用户推特提要被转换并放在一张图片上。我已经有了自动执行此操作的脚本。然而,如果在twitter用户发出tweet后调用我的脚本并将其转换为图

我正在尝试编写一个php脚本,可以将每日照片上传到我的个人facebook墙上。我需要这是在任何时候,而不仅仅是当我登录。我想知道是否可以只使用php将照片上传到我的墙上,或者我是否需要使用具有正确权限的应用程序。如果是这样,我必须亲自安装该应用程序,并为我的页面授予正确的权限才能实现这一点,如果可能的话,这可以自动完成吗

我想做什么: 简而言之,我希望一个用户推特提要被转换并放在一张图片上。我已经有了自动执行此操作的脚本。然而,如果在twitter用户发出tweet后调用我的脚本并将其转换为图像(同样,我已经完成了此代码),我会喜欢它,但是

现在我需要一个脚本,可以在创建图像后自动将其上传到我的个人墙上。这可能吗?


请不要投我的反对票。如果这是一个糟糕的问题,我可以把它取下来,或者移到另一个合适的形式。我只是不知道该把它放在哪里。谢谢

那么,您可以使用扩展用户访问令牌使其最多工作60天。在此之后,令牌将过期,然后您必须刷新令牌,这在没有用户交互的情况下是不可能的

缔约国同样指出:

即使是长寿命的访问令牌最终也会过期。在任何时候,您都可以通过将此人发送回您的web应用程序使用的登录流来生成一个新的长寿令牌-请注意,此人实际上不需要再次登录,他们已经授权了您的应用程序,因此,他们将立即使用刷新的令牌从登录流重定向回您的应用程序-这对用户的显示方式将根据您使用的登录流类型而有所不同,例如,如果您使用的是JavaScript SDK,这将在后台发生,如果您使用的是服务器端流,浏览器将快速重定向到登录对话框,然后自动立即再次返回到您的应用程序

完成上述操作后,您将获得一个新的短期令牌,然后您需要对长期令牌执行与上述相同的交换

要获取扩展令牌,请从服务器进行以下调用:

GET /oauth/access_token?  
   grant_type=fb_exchange_token&           
   client_id={app-id}&
   client_secret={app-secret}&
   fb_exchange_token={short-lived-token} 

代码

$app_id = APP_ID;
   $app_secret = APP_SECRET;
   $post_login_url = APP_URL;
   $album_name = 'test';
   $album_description = 'desc';

   $code = $_REQUEST["code"];

   //Obtain the access_token with publish_stream permission 
   if(empty($code))
     {
       $dialog_url= "http://www.facebook.com/dialog/oauth?"
       . "client_id=" . $app_id 
       . "&redirect_uri=" . urlencode($post_login_url)
       . "&scope=publish_stream";
       echo("<script>top.location.href='" . $dialog_url . 
       "'</script>");
   } 
   else {
   
     // access token
     $token_url= "https://graph.facebook.com/oauth/"
     . "access_token?"
     . "client_id=" .  $app_id 
     . "&redirect_uri=" . urlencode( $post_login_url)
     . "&client_secret=" . $app_secret
     . "&code=" . $code;
     $response = file_get_contents($token_url);
     $params = null;
     parse_str($response, $params);
     $access_token = $params['access_token'];       // <---
    
     // extended token
     $extended_token_url= "https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=".$app_id."&client_secret=".$app_secret."&fb_exchange_token=".$access_token; 
     $response = file_get_contents($extended_token_url);
     $params = null;
     parse_str($response, $params);
     $extended_access_token = $params['access_token'];  //  <---

     // Upload to the photos to the album here
}
$app\u id=app\u id;
$app\u secret=app\u secret;
$post\u login\u url=APP\u url;
$album_name='test';
$album_description='desc';
$code=$_请求[“code”];
//获取具有发布\u流权限的访问\u令牌
if(空($code))
{
$dialog_url=”http://www.facebook.com/dialog/oauth?"
“客户_id=”.$app_id
.“&redirect_uri=“.urlencode($post_login_url)
.“&scope=publish\u stream”;
echo(“top.location.href=”。$dialog\u url。
"'");
} 
否则{
//访问令牌
$token_url=”https://graph.facebook.com/oauth/"
“访问令牌?”
“客户_id=”.$app_id
.“&redirect_uri=“.urlencode($post_login_url)
.“&client_secret=”.$app_secret
.“&code=”.$code;
$response=file\u get\u contents($token\u url);
$params=null;
parse_str($response,$params);

$access\u token=$params['access\u token'];//首先你写道:
我的个人页面facebook墙
;然后:
上传一张照片到我的墙上
-那么,你想把照片贴到你的墙上或你的页面的墙上吗?我的个人墙,当我说个人页面时,我指的是我的个人墙。你知道facebook的基本知识-身份验证、访问令牌等吗?是的,我只是想知道电子应用程序可以在个人墙上运行,带有照片,无需我登录。例如,我的服务器是否可以运行php脚本,将我的用户id存储在数据库中,并使用facebook api调用该脚本,然后在我睡觉时发布到我的墙上。:)是的,它可以–只要你有一个有效的访问令牌来传递请求。用户access令牌可以延长到60天,之后您必须获得一个新的令牌。如果用户之前已经为应用程序授予了正确的权限,则还可以使用应用程序访问令牌执行某些发布操作。如果这也适用于照片上载,我不知道–您必须尝试。嗯,那么您是否有一些示例代码,即完整的瘦代码g我可以用它来实现这一点?就像我的服务器调用存储并调用了这个特殊的令牌?它没有那么复杂。我认为你能够获得正常的用户访问令牌,只要在上面的调用中使用它,你就会得到长寿命令牌(你可以在浏览器中检查这个);然后在打电话给
/photos
时使用这个tokoen。如果你发现任何困难,请告诉我。祝你好运!顺便说一句,你就是那个人。我一直在做研究,我在这个问题上看到了你的名字。谢谢你的帮助!好灵魂!:)老实说,我在这方面是个相当新手。所以我需要一些工作才能弄清楚。我会的到达那里。我真正想要的是服务器在我不在的时候做这件事,比如可能使用“离线访问”电话?存在吗?嘿,Shadowfax,你能给我发电子邮件吗?我有几个问题要问你。谢谢。ed。vizenor@gmail.com