0
다음은 게시물 메시지를 보내는 코드입니다. 내 화면에는 사용자가 텍스트를 입력 할 수있게 해주는 EditText 섹션이 있으며, sendMessage 함수가 호출되면 POST를 실행합니다. 나는 응답에서 이것을 계속 얻는다. 또한 URLEncode.encode (페이로드, "UTF-8")를 사용하여 인코딩 된 문자열을 본문에 추가하고 작동하지 않았습니다. 모든 통찰력이 도움이 될 것입니다. 여기 안드로이드에서 작동하지 않는 Scribe with LinkedIn에 메시지 게시
04-19 18:24:50.570: D/response(693): <error>
04-19 18:24:50.570: D/response(693): <status>400</status>
04-19 18:24:50.570: D/response(693): <timestamp>1334859891007</timestamp>
04-19 18:24:50.570: D/response(693): <request-id>WJPI8VXQME</request-id>
04-19 18:24:50.570: D/response(693): <error-code>0</error-code>
04-19 18:24:50.570: D/response(693): <message>Couldn't parse share document: error: Unexpected end of file after null</message>
04-19 18:24:50.570: D/response(693): </error>
코드입니다 :
private static final String SendMessage = "https://api.linkedin.com/v1/people/~/shares";
public void sendMessage(View view)
{
//Get works just fine
//OAuthRequest req = new OAuthRequest(Verb.GET, "http://api.linkedin.com/v1/people/~/connections:(id,last-name)");
//service.signRequest(accessToken, req);
//Response res = req.send();
//Log.e("get", res.getBody());
OAuthRequest post = new OAuthRequest(Verb.POST, SendMessage);
//Have also tried adding <?xml version=\"1.0\" encoding=\"UTF-8\"?>" to the beginning of the payload string
String payload = "<share>" +
"<comment>testing</comment>" +
"<visibility><code>anyone</code></visibility>" +
"</share>";
post.addBodyParameter("body", payload);
post.addHeader("Content-Type", "text/xml;charset=UTF-8");
service.signRequest(accessToken, post);
try
{
Response response = post.send();
Log.d("response",response.getBody());
}
catch (Exception e)
{
e.printStackTrace();
}
LinkedInActivity.this.finish();
}
내 서비스로 정의되고있다 : 나는 토큰/검증을 저장하기 위해 콜백을 잡기 위해 웹보기를 사용
service = new ServiceBuilder()
.provider(LinkedInApi.class)
.apiKey(API_KEY)
.apiSecret(API_SEC)
.callback(CALLBACK)
.debug()
.build();
final Token requestToken = service.getRequestToken();
final String authURL = service.getAuthorizationUrl(requestToken);
. 예는 다음과 같습니다 :
webView.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.startsWith("oauth")){
webView.setVisibility(View.GONE);
Uri uri = Uri.parse(url);
String verifier = uri.getQueryParameter("oauth_verifier");
Verifier v = new Verifier(verifier);
//save token
accessToken = service.getAccessToken(requestToken, v);
if(uri.getHost().equals("linkedIn")){
editText.setText(appState.socialMediaMessage);
//place the cursor at the end of the predefined text
editText.setSelection(editText.getText().length());
textLimit = textLimit - editText.length();
textView.setText(String.valueOf(textLimit));
}
return true;
}
return super.shouldOverrideUrlLoading(view, url);
}
});
//send user to authorization page
webView.loadUrl(authURL);