向facebook(Marmalade c++)发送图片请求响应失败
Sending picture request to facebook ( Marmalade c++ ) failed response
经过大量的研究和几次碰壁,我几乎结束了我的代码。我可以连接到facebook,甚至发送消息请求,但我不能发送图片请求。这是代码:
s3eFBRequest* pWallPostRequest = s3eFBRequest_WithGraphPath(MultiLoginScene::getSession(), "me/photos", "POST");
s3eFBRequest_AddParamString(pWallPostRequest, "picture", MakeScreenshot());
//s3eFBRequest* pWallPostRequest = s3eFBRequest_WithGraphPath(MultiLoginScene::getSession(), "me/feed", "POST");
//s3eFBRequest_AddParamString(pWallPostRequest, "message", "Here's a wall post!");
s3eFBRequest_AddParamString(pWallPostRequest, "access_token", s3eFBSession_AccessToken(MultiLoginScene::getSession()));
s3eFBRequest_Send(pWallPostRequest, GraphRequestCallback, NULL);
关于MakeScreenshot()
static void flipVertical(unsigned char *data, int w, int h)
{
int x, y, i1, i2;
unsigned char temp;
for (x=0;x<w;x++){
for (y=0;y<h/2;y++){
i1 = (y*w + x)*3; // this pixel
i2 = ((h - y - 1)*w + x)*3; // its opposite (across x-axis)
// swap pixels
temp = data[i1];
data[i1] = data[i2];
data[i2] = temp;
i1++; i2++;
temp = data[i1];
data[i1] = data[i2];
data[i2] = temp;
i1++; i2++;
temp = data[i1];
data[i1] = data[i2];
data[i2] = temp;
}
}
}
const char* MainMenuScene::MakeScreenshot()
{
static int count = 0;
static char file[] = "PicaSim-00000.png";
sprintf(file, "PicaSim-%05d.png", count++);
// int w = s3eSurfaceGetInt(S3E_SURFACE_WIDTH);
//int h = s3eSurfaceGetInt(S3E_SURFACE_HEIGHT);
int w = 600;
int h = 600;
int dataSize = w * h * 3;
unsigned char *framebuffer =
(unsigned char *) malloc(dataSize * sizeof(unsigned char));
glReadPixels(0, 0, w, h, GL_RGB, GL_UNSIGNED_BYTE, framebuffer);
flipVertical(framebuffer, w, h);
/* CIwImage image;
image.SetFormat(CIwImage::BGR_888);
image.SetWidth(w);
image.SetHeight(h);
image.SetBuffers(framebuffer, dataSize);
image.SavePng(file);
free(framebuffer);*/
return (const char *)framebuffer;
}
毕竟,我从回拨中收到了一个失败的响应。。。我做错了什么?我只需要发送一张截图到脸书。。。知道为什么不工作吗?
编辑:
所以我试着发送一个URL作为参数,但仍然不起作用
s3eFBRequest* pWallPostRequest = s3eFBRequest_WithGraphPath(MultiLoginScene::getSession(), "me/photos", "POST");
s3eFBRequest_AddParamString(pWallPostRequest, "picture", "http://img1.wikia.nocookie.net/__cb20130407100142/onepiece/pt/images/d/d8/Goku_2.jpg");
s3eFBRequest_AddParamString(pWallPostRequest, "access_token", s3eFBSession_AccessToken(MultiLoginScene::getSession()));
s3eFBRequest_Send(pWallPostRequest, GraphRequestCallback, NULL);
但仍然不起作用。。。有线索吗?
您正在将帧缓冲区作为参数发送到Facebook!!
Facebook只接受图片URL作为picture
参数。因此,您的图片需要上传到web服务器上,url需要位于发送帧缓冲区的picture
参数中。
相关文章:
- 为什么当通过 TCP 发送的消息速率增加时,请求-响应消息对的延迟会降低?
- 如何在 rxcpp 中处理请求/响应流
- 异步WT :: HTTP ::客户端响应和请求匹配
- 如何调用对带有句点的服务器的请求,并在响应无效时再次发送
- 处理HTTP POST请求/响应
- 生成不带存根的 WSDL 请求/响应
- 使用Resiprocate SIP堆栈转发SIP请求/响应
- IHttp请求响应长度限制
- 请求-响应系统
- 使用lambda的异步请求/响应
- 支持SOAP请求/响应的最佳XML解析器
- 模拟器,发送请求 - 响应并打开TCP连接
- 作为XML字符串提取请求/响应
- 套接字编程中的多个请求/响应
- 如何实现没有陷阱的简单请求-响应技术
- 向facebook(Marmalade c++)发送图片请求响应失败
- 如何进行异步http请求-响应通信(在vc++中请求,在java中响应)
- HTTP 客户端请求响应与 pion-net c++
- Activemq C++请求-响应
- 如何在c++中异步处理本地socket上的https请求响应