-2

我在 Android 中遇到 Yammer 集成问题,我无法使用 Yammer 对我的应用程序进行身份验证,因此我无法通过我的 Android 应用程序在 Yammer 上发布我的数据。

JSONObject job = new JSONObject();
/*ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                nameValuePairs.add(new BasicNameValuePair("score", score));          // user : User name from Text Field
*/
HttpPost post = new HttpPost("https://www.yammer.com/api/v1/messages.json?client_id=JV8Vr6vYaF0RdyVnLKhnRg&client_secret=zACHEVUnUKaRD58Ho5MvnSjvRZaadNqpCOWirc9I8SiA&access_token="+tokens[1]); 
System.out.println("tokens[1]----------.>>>>>"+tokens[1]);

post.setHeader("Content-Type", "text/json; charset=utf-8"); // Header
            // for
            // HttpPost
            ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
                public String handleResponse(HttpResponse response) // Header
                // for
                // HttpResponse
                        throws ClientProtocolException, IOException {
                    response.setHeader("Content-Type", "charset=utf-8");
                    HttpEntity entity = response.getEntity();
                    StringBuffer outString = new StringBuffer();
                    outString.append(EntityUtils.toString(entity));
                    return outString.toString();
                }
            };
            try {
                System.out.println("hi this is deloitte game.");
                post.setEntity(new StringEntity("hi this is deloitte game."));
                DefaultHttpClient httpclient = new DefaultHttpClient();
                String response = httpclient.execute(post, responseHandler);
                System.out.println("response---->>"+response);
                //job = new JSONObject(response);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }*

我已将这些代码用于 yammer 集成,在此代码中,我使用 post 方法将数据发布到 yammer 上,但无法发布到 yammer 墙上。

4

1 回答 1

0

根据 Yammer 文档https://developer.yammer.com/restapi/#rest-messages

您应该将参数传递给请求,而不是帖子中的纯字符串。(否则,你怎么指望 Yammer 知道正文是什么,主题是什么,附件是什么……)

通常,这是使用UrlEncodedFormEntity带有 的列表来完成的NameValuePair

您的实体应如下所示:

List<NameValuePair> values = new ArrayList<NameValuePair>();
values.add(new BasicNameValuePair("body", "hi this is deloitte game.");
HttpEntity postEntity = new UrlEncodedFormEntity(values);
post.setEntity(postEntity);

服务实际上可能需要 JSON 输入,在这种情况下,它甚至很简单。

编辑

如果它在 json 中,我可能看起来像:

JSONObject jsonObject = new JSONObject();
jsonObject.put("body", "hi this is a body");
post.setEntity(new StringEntity(jsonObject.toString()));
于 2013-05-24T10:08:22.283 回答