我有一个 iOS 应用程序,可以向用户发布带有链接、描述和图像的 FB 源。
如果我在全尺寸浏览器中检查通过我的应用发布的帖子,我可以看到所有内容(包括缩略图)都按预期显示。
问题是,如果我从移动浏览器或 FB iOS 应用程序打开 FB 提要,我会看到灰色框而不是缩略图。
我已经尝试了多次,每次我都会在移动页面中看到灰色框,并且在我能看到的范围内检查链接的所有 Facebook 调试数据。
以下是将 Feed 发布到 FB 的 objective-c 代码。
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setObject:self.captionTextView.text forKey:@"message"];
[params setObject:[NSString stringWithFormat:@"%@'s photo on Wander", [appDelegate.prefs valueForKey:@"firstName"]] forKey:@"name"];
[params setObject:shortUrl forKey:@"link"];
NSString *imageURL = [NSString stringWithFormat:@"http://%@/mobile/photo.php?p=%@", appDelegate.apiHost, photoParams];
[params setObject:imageURL forKey:@"picture"];
[params setObject:[NSString stringWithFormat:@"%@, %@", [appDelegate.prefs valueForKey:@"cityName"], [appDelegate.prefs valueForKey:@"countryName"]] forKey:@"caption"];
[params setObject:[NSString stringWithFormat:@"I'm using Wander to explore %@ with %@ as a local guide!", [matchData valueForKey:@"cityName"], [matchData valueForKey:@"firstName"]] forKey:@"description"];
[appDelegate.facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/feed", fbId] andParams:params andHttpMethod:@"POST" andDelegate:self];
[params release];
这是测试网址:http://maruta.wanderwith.us/viewPhoto/index/My0zNA (这可能会消失,因为它在开发服务器上,我会定期清除数据,我会尽力保持它的存在,直到它得到解决)
我错过了什么吗?
最佳答案
我遇到了同样的情况。原来这是您网址中的问号。 Facebook 通过他们自己的代理传递您的图像 URL。如果您的 URL 包含“?”,则它无法通过移动 Feed 以某种方式工作。
您的服务器需要这种格式的 url: http://hostname/mobile/photo.php?p=1234567889 。如果您将其更改为以下格式: http://hostname/mobile/photo/1234567889 ,那么 Facebook 会很高兴。如果您使用的是 apache,请尝试 mod rewrite。
关于objective-c - Facebook 移动 Feed 中的损坏(灰色)缩略图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7498237/