使用Node.js:
var s = 'Who\'s that girl?';
var url = 'http://graph.facebook.com/?text=' + encodeURIComponent(s);
request(url, POST, ...)
这不管用!脸书把我的短信删掉了
完整代码:
function postToFacebook(fbid, access_token, data, next){
var uri = 'https://graph.facebook.com/'+String(fbid)+'/feed?access_token='+access_token;
var uri += '&' + querystring.stringify(data);
request({
'method':'POST',
'uri': uri,
},function(err,response,body){
next();
});
};
app.get('/test',function(req,res){
var d = {
'name':'Who\'s that girl?',
'link': 'http://example.com',
'caption': 'some caption...',
'description': 'some description...',
'picture': 'http://i.imgur.com/CmlrM.png',
};
postToFacebook(req.user.fb.id, req.user.fb.accessToken, d);
res.send('done');
});
Facebook在墙上贴了一张空白的帖子。无文本显示。没什么
当我记录我的URI时,它是这样的:
https://graph.facebook.com/1290502368/feed?access_token=2067022539347370|d7ae6f314515c918732eab36.1-1230602668|GtOJ-pi3ZBatd41tPvrHb0OIYyk&name=Who's%20that%20girl%3F&link=http%3A%2F%2Fexample.com&caption=some%20caption...&description=some%20description...&picture=http%3A%2F%2Fi.imgur.com%2FCmlrM.png
很明显,如果你看一下这个URL,你会发现撇号没有被正确编码。
4条答案
按热度按时间zd287kbt1#
有同样的问题,encodeURIComponent没有编码单引号。技巧是在**编码后用%27,**替换':
这样,trackArtistTitle将在服务器上正确解码,即PHP使用urldecode()。
uqcuzwp82#
我正在做类似的事情(也是用Node.js),首先尝试使用JavaScript的内置escape()函数,但它并没有真正工作。
以下是我如何让搜索开始工作的。这可能只是一种侥幸:
a0zr77ik3#
我知道这不能解决OP的问题,但是对于那些带着OData Query相关问题来到这里的人,* 注意转义字符是另一个单引号 *。
这假设您已经对字符串执行了
encodeURIComponent(unescapedValue)
来源:https://stackoverflow.com/a/4483742/2831961
vlju58qv4#
最新答案(2021)
使用JavaScript的
URLSearchParams
: