【问题标题】:What is wrong with Facebook and Twitter APIs?Facebook 和 Twitter API 有什么问题?
【发布时间】:2011-09-30 22:57:45
【问题描述】:

还有其他人注意到 facebook 和 twitters API 无法正常工作吗?

对于 facebook,即使我允许我的应用程序访问我的墙

$facebook->getUser()

始终为 0...当我尝试打开 getLoginUrl 时,它只会打开弹出窗口并立即将其重定向到成功返回链接...

代码如下:

require_once 'src/base_facebook.php';
require_once 'src/facebook.php';

$app_id = 'xxx';
$app_secret = 'xxx';

$facebook = new Facebook(array(
  'appId'  => $app_id,
  'secret' => $app_secret,
  'oauth' => true,
  'cookie' => true
));

$req_perms = "publish_stream";

$user = $facebook->getUser();

if (!$user)
    {
    $loginUrl = $facebook->getLoginUrl(array('display' => 'popup', 'redirect_uri' => 'http://xxxx.com/return_close.php?success=1', 'cancel_url' => 'http://xxxx.com/return_close.php?success=0','req_perms' => $req_perms, 'scope' => $req_perms));
    }

对于推特来说,这就像有人输入错误的返回链接...... 当我打开 getAuthorizeURL 并登录时,它会将我重定向到此 URL:

https://twitter.comoauth_callback/?oauth_token=yA2xjLsVRm9tIuVEysXnCV8R7TISW8tF94uznn7zlw&oauth_verifier=Io1N2I8zOEzJeBWI77WXFMqmMRNDfCrXZGQxXmxJLbI

是的,https://twitter.comoauth_callback/是对的,.com后面没有/,是在一起的,所以我找不到页面...

好像这两个 API 都有严重的问题...... Facebook 有时可以工作,有时不能,它的 bug 很多......

从官方 GitHub 页面下载的 Facebook 库。试用版:

v3.1.1
v3.1.0
v3.0.1

这些都不起作用......


更新

返回 URL (redirect_uri)必须在文件中包含 facebook 类...

有很多示例/文档,但没有一个解释过......

所以,Facebook 修复了...... Twitter 仍然无法正常工作......


【问题讨论】:

  • 您一定是 FB 开发新手。不用担心,一旦你弄清楚了,他们就会改变它。 “如果它没有坏,那就修好它直到它坏了。”
  • “一旦你弄清楚了,他们就会改变它”?你的意思是这种情况一直在发生?
  • 哦,享受文档吧。
  • 所以...这种情况一直在发生还是我的错?
  • “还有其他人注意到 facebook 和 twitters API 不起作用吗?” --- 想知道为什么您认为他们的 API 同时被破坏,但您的代码却没有写错?

标签: facebook-graph-api facebook twitter


【解决方案1】:

好吧,API 中没有任何问题。你从哪里得到上面的代码?如果你想出它,那么基于什么资源?

首先,看一下OFFICIAL PHP-SDK的example,你会注意到以下内容:

  1. 只包含facebook.php 文件,为什么不包含base_facebook.php?因为它包含在facebook.php 文件中!
  2. 开发者以前使用req_perms,但现在请求权限只需要使用scope
  3. 查看base_facebook.php 内部Facebook() 类期望的参数:appIdsecretfileUpload 仅限
  4. 只有在知道自己在做什么的情况下才使用display 参数!
  5. 在您的代码中使用适当的缩进,它会让您(和其他人!)的生活变得更轻松!

有人说过,这是对你的代码的重写:

require 'src/facebook.php';

$app_id = 'xxx';
$app_secret = 'xxx';

$facebook = new Facebook(array(
  'appId'  => $app_id,
  'secret' => $app_secret
));

$req_perms = "publish_stream";

$user = $facebook->getUser();

if (!$user) {
    $loginUrl = $facebook->getLoginUrl(array('display' => 'popup', 'redirect_uri' => 'http://xxxx.com/return_close.php?success=1', 'cancel_url' => 'http://xxxx.com/return_close.php?success=0', 'scope' => $req_perms));
}

【讨论】:

  • 资源是从那个官方页面下载的,在顶部你有下载,然后选择 v3.1.1... ;) 我使用了你刚刚发给我的那个代码,但它没有用,所以我尝试了这些“修复”更改...这就是为什么它具有此 base_facebook、cookie/oauth 参数以及范围和 req_perms 的原因,我来这里之前尝试找到解决方案... ;) 5. 我会使用它如果工作正常,则正常...无论如何,您的代码不起作用...
  • 显然上面的代码只是为了让你开始它不会重定向你或做任何事情!。 “没有”工作也不能帮助我们帮助你。什么不起作用?
  • 我按照你的方式更改了我的代码,转到我的 Facebook,在我的个人资料中删除此应用程序的权限,然后打开页面,$user 为 0。然后我在弹出窗口中打开 $loginUrl ,它向我显示了“允许”问题,我点击了允许,它把我转到了成功页面。我重新加载了我的页面,这段代码在哪里,它仍然有 $user 0...我尝试了 3 种不同的浏览器,尝试清理我的 cookie/缓存...它仍然无法正常工作...另外,我试过了在 3 个最新版本上,v3.1.1、v3.1.0 和 v3.0.1 都没有工作......
  • 首先使用完全相同的示例代码进行检查怎么​​样?并且不要使用旧版本的 SDK。
  • 就像我告诉你的那样,我已经这样做了...现在,当您发送给我时,以及第一次,当我开始制作时...所有完全相同的代码...而且它不起作用...我正在使用最新版本,但我也把它们检查了,但它是一样的,不工作,所以我回到最新版本......奇怪的是它有时工作,有时没有,但现在不是完全工作,同时我没有改变任何事情......
猜你喜欢
  • 1970-01-01
  • 2015-02-12
  • 1970-01-01
  • 1970-01-01
  • 2011-08-27
  • 1970-01-01
  • 2014-12-23
  • 1970-01-01
  • 2012-09-13
相关资源
最近更新 更多