使用Facebook's移动托管API与解析云代码的应用程序链接
Using Facebook's Mobile Hosting API with Parse Cloud Code for App Links
我有麻烦获得应用程序链接与Parse工作。
因为我的应用程序是移动只有我想使用Facebook的移动托管API。因为你需要发送你的Facebook应用程序的秘密与请求,我想做它与解析云代码。
我能在Facebook文档中找到的是如何使用cURL:
curl https://graph.facebook.com/app/app_link_hosts '
-F access_token="APP_ACCESS_TOKEN" '
-F name="iOS App Link Object Example" '
-F ios=' [
{
"url" : "sharesample://story/1234",
"app_store_id" : 12345,
"app_name" : "ShareSample",
}, ]' '
-F web=' {
"should_fallback" : false, }'
这就是我在cloud code中写的
Parse.Cloud.httpRequest({
method: 'POST',
url: 'https://graph.facebook.com/app/app_link_hosts',
headers: {
'Content-Type': 'multipart/form-data'
},
body: {
access_token : "APP_ACCESS_TOKEN",
name : "iOS App Link Object Example",
ios : '[{"url" : "sharesample://story/1234","app_store_id" : 12345,"app_name" : "ShareSample",},]',
web : '{"should_fallback" : false,}'
}
我得到的响应是:请求失败,响应代码为400
现在我刚刚读到multipart/form-data不支持parse . cloud . httprequest那还有别的办法吗?
update:刚刚发现你可以用Buffer发送多部分数据,这是我的代码
var Buffer = require('buffer').Buffer;
var access_token = new Buffer('APP_ACCESS_TOKEN','utf8');
var name = new Buffer('iOS App Link Object Example','utf8');
var ios = new Buffer('[{"url" : "sharesample://story/1234","app_store_id" : 12345,"app_name" : "ShareSample",},]','utf8');
var web = new Buffer('{"should_fallback" : false,}','utf8');
var contentBuffer = Buffer.concat([access_token, name, ios, web]);
Parse.Cloud.httpRequest({
url: 'https://graph.facebook.com/app/app_link_hosts',
method: 'POST',
headers: {
'Content-Type': 'text/html; charset=utf-8'
},
body: contentBuffer
}
然而,我仍然得到相同的结果:(
update2:让它工作的内容类型application/x-www-form-urlencoded和正常的身体。但我认为错误是在我的参数某处,因为我用curl测试了它,得到了相同的响应
花了我几个小时,但我终于把它修好了:
// Returns the canonical url, like https://fb.me/....
Parse.Cloud.define("createAppLink", function(request, response) {
// see https://developers.facebook.com/docs/graph-api/reference/v2.5/app/app_link_hosts
var storyId = request.params.storyId + ''; // param identifying a single "post"
var appId = 'APP_ID';
var appSec = 'APP_SECRET';
var appToken = appId + '|' + appSec; // your app token
Parse.Cloud.httpRequest({
url: 'https://graph.facebook.com/app/app_link_hosts',
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ // you need to stringify it
access_token: appToken,
name: 'LINK TO ' + storyId, // it is needed but not public
android: [{
url: 'app://story/' + storyId, // deep link url
package: 'com.package', // your package name
app_name: 'APP' // your app name
}],
web: { should_fallback: 'false' }
})
}).then(function(httpResponse) {
// We get an id, by which we can fetch
// the canonical url with a get request
var data = JSON.parse(httpResponse.text);
var id = data.id;
return Parse.Cloud.httpRequest({
url: 'https://graph.facebook.com/' + id,
method: 'GET',
headers: {
'Content-Type': 'application/json'
},
params: {
access_token: appToken,
fields: 'canonical_url',
pretty: 'true'
}
});
}).then(function(httpResponse) {
var data = JSON.parse(httpResponse.text);
var canonicalUrl = data.canonical_url;
response.success(canonicalUrl);
}, function(error) {
response.error(error);
})
});
相关文章:
- 带有ruby代码和javascript的链接
- Jquery在初始页面加载时选中复选框时显示链接的代码
- 用于更改链接文本的字体颜色的代码
- 点击超链接即可获得搜索引擎和javascript代码
- ajax代码工作时,使用javascript禁用html中的链接
- 链接适用于所有浏览器,除了 safari(php 代码)
- 修复Javascript代码以将文本中的所有Youtube链接转换为Youtube ID功能
- 是否有脚本/代码可以一次将链接属性添加到多个链接
- 我如何完善这个Javascript代码,使其忽略图像中的链接
- 在PHP代码中单击链接javascript函数调用
- 使用JavaScript从网页复制HTML代码或图像链接
- 将视图链接到模型并将视图链接至控制器的代码位于何处
- 正在将javascript值附加到gridview超链接.为什么我的代码没有任何想法'不起作用
- 为什么首先单击文档空白处的任何位置启动代码,而不是单击超链接,以及为什么打开了太多选项卡
- 替换文本中的随机youtube链接以使用javascript嵌入代码
- 我如何完善这个Javascript代码,使其只适用于来自图像的链接(而不是来自文本的链接)
- 添加此JavaScript代码的链接
- jQuery/JavaScript代码如何将表导出为CSV文件而不考虑表's大小.看看@jsfiddle链接
- 是否有一种方法来“硬链接”html代码(链接,表单,按钮)与视频,使他们都直接显示在facebook的饲料
- Jquery在一个页面上工作,而在另一个具有相同代码/链接的页面上不起作用