我正在使用iOS Facebook SDK,并且有一个使用以下代码在用户墙上发布的应用程序:
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"Share on Facebook",
@"user_message_prompt",
shareUrl, @"link",
imgUrl, @"picture",
nil];
[_facebook dialog:@"feed" andParams:params andDelegate:self];
改编自SDK附带的示例。
它过去工作正常,最近,它已经开始破坏 - 你登录,然后你只是呈现一个空白页面(顶部有facebook标志+蓝色条纹)。
如果我在我的Mac上的浏览器中打开此链接,它会显示正确的页面,但在iPhone上它只是一个空白屏幕。控制台或页面本身没有错误。
我设法获取了webView内容,它看起来像这样:
window._sync_cstart = +new Date;
Facebook Mobilewindow.FB_GKS = {
"moulder_feed": 1,
"moulder_feed_hide_toggle": 0,
"timeline_mobile": 0,
"groups_faceweb": 0,
"mobile_js_show_errorbox": 0,
"mobile_js_show_debug": false
};
window.m_version = "M_siWj64";
document.cookie = "m_version=M_siWj64; path=\/"; /*<![CDATA[*/
function si_cj(m) {
setTimeout(function () {
new Image().src = "http:\/\/error.facebook.com\/common\/scribe_endpoint.php?c=si_clickjacking&t=3135" + "&m=" + m;
}, 5000);
}
if (top != self && !false) {
try {
if (parent != top) {
throw 1;
}
var si_cj_d = ["apps.facebook.com", "\/pages\/", "apps.beta.facebook.com"];
var href = top.location.href.toLowerCase();
for (var i = 0; i < si_cj_d.length; i++) {
if (href.indexOf(si_cj_d[i]) >= 0) {
throw 1;
}
}
si_cj("3 http:\/\/m.facebook.com\/login.php?app_id=177538815636301&sdk=2&cancel=fbconnect\u00253A\u00252F\u00252Fsuccess&next=https\u00253A\u00252F\u00252Fm.facebook.com\u00252Fdialog\u00252Ffeed\u00253F_path\u00253Dfeed\u002526app_id\u00253D177538815636301\u002526redirect_uri\u00253Dfbconnect\u0025253A\u0025252F\u0025252Fsuccess\u002526sdk\u00253D2\u002526display\u00253Dtouch\u002526link\u00253Dhttp\u0025253A\u0025252F\u0025252Frefract.swarovski.com\u0025252F\u0025253Fcode\u0025253D3dh574\u002526picture\u00253Dhttp\u0025253A\u0025252F\u0025252Frefract.swarovski.com\u0025252Ffiles\u0025252F3dh574.png\u002526user_message_prompt\u00253DShare\u00252Bon\u00252BFacebook\u002526from_login\u00253D1&rcount=1&_rdr");
} catch (e) {
si_cj("1 \thttp:\/\/m.facebook.com\/login.php?app_id=177538815636301&sdk=2&cancel=fbconnect\u00253A\u00252F\u00252Fsuccess&next=https\u00253A\u00252F\u00252Fm.facebook.com\u00252Fdialog\u00252Ffeed\u00253F_path\u00253Dfeed\u002526app_id\u00253D177538815636301\u002526redirect_uri\u00253Dfbconnect\u0025253A\u0025252F\u0025252Fsuccess\u002526sdk\u00253D2\u002526display\u00253Dtouch\u002526link\u00253Dhttp\u0025253A\u0025252F\u0025252Frefract.swarovski.com\u0025252F\u0025253Fcode\u0025253D3dh574\u002526picture\u00253Dhttp\u0025253A\u0025252F\u0025252Frefract.swarovski.com\u0025252Ffiles\u0025252F3dh574.png\u002526user_message_prompt\u00253DShare\u00252Bon\u00252BFacebook\u002526from_login\u00253D1&rcount=1&_rdr");
window.document.write("\u003cstyle>body * {display:none !important;}\u003c\/style>\u003ca href=\"#\" onclick=\"top.location.href=window.location.href\" style=\"display:block !important;padding:10px\">Go to Facebook.com\u003c\/a>"); /*B145Ecbc*/
}
} /*]]>*/
Loading...Loading...MExceptionHandler.run(function () {
JX.Stratcom.mergeData(0, {});
MExceptionHandler.run(function () {
JX.initBehaviors({
"m-response": [],
"m-page-error": [{
"mobile_js_show_errorbox": 0,
"mobile_js_show_debug": false
}],
"m-link": [],
"ios-webapp": [],
"m-verify-cache": [{
"viewer": 100002342336489
}],
"usercheck": [{
"user_id": 100002342336489
}],
"dtsg": [{
"dtsg": {
"token": "AQB2zmo7",
"expire": 1318070716
}
}],
"m-scroll-position-saver": [],
"m-ajax-loader": [{
"future": false
}],
"m-back-button": [],
"m-blocking-touchable": []
})
}, "behavior");
}, "onload");
未调用fbDidNotLogin回调。没有错误出现 - 我已经放了很多NSLog(),几乎每种方法都有。
有什么想法吗?