Facebookのアプリケーションに取り組んでいますが、現在、自分のアプリのタグをユーザーの友だちの1つにしようとしています。人にタグを付けることを想定している場合を除いて、私はほぼ100%動作していますが、代わりに次のエラーメッセージが表示されます。Android Facebookサポートされていない投稿リクエストエラー
{"エラー":{"メッセージ": "サポートされていない投稿要求"、 "タイプ: "GraphMethodException"、 "code":100}}
ユーザーIDと写真IDは間違いなく正しいですが、これは問題ではありません。それ以外の場合は、このエラーの原因となるものが他に何かあるかどうかはわかりません。コードは以下のとおりです。どうもありがとう!
public void setTag() {
String relativePath = Constants.photoID + "/tags/" + Constants.userID;
Bundle params = new Bundle();
params.putString("x", "5");
params.putString("y", "5");
Constants.mAsyncRunner.request(relativePath, params, "POST", new TagPhotoRequestListener(),
null);
}
public class TagPhotoRequestListener extends BaseRequestListener {
@Override
public void onComplete(final String response, final Object state) {
if (response.equals("true"))
{
String message = "User tagged in photo at (5, 5)" + "\n";
message += "Api Response: " + response;
Log.i("TagPhotoRequestListener", message);
}
else
{
Log.w("TagPhotoRequestListener", "User could not be tagged.");
}
}
public void onFacebookError(FacebookError e) {
Log.w("TagPhotoRequestListener", "Facebook Error: " + e.getMessage());
}
}
編集:ここでは、画像の投稿やPHOTOIDを取得するための私のコードです。テスト目的のために、それは私のSDカードからの単なる写真です。
public void postPhoto() {
byte[] data = null;
Bitmap bi = BitmapFactory.decodeFile("/mnt/sdcard/Download/KathleenSchedule.jpg");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
data = baos.toByteArray();
Bundle params = new Bundle();
params.putString(Facebook.TOKEN, Constants.mFacebook.getAccessToken());
params.putString("method", "photos.upload");
params.putByteArray("picture", data);
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(Constants.mFacebook);
mAsyncRunner.request(null, params, "POST", new PhotoUploadListener(), null);
}
public class PhotoUploadListener extends BaseRequestListener {
@Override
public void onComplete(final String response, final Object state) {
try {
// process the response here: (executed in background thread)
Log.d("PhotoUploadListener", "Response: " + response.toString());
JSONObject json = Util.parseJson(response);
System.out.println(response);
final String photo_id = json.getString("pid");
Constants.photoID = photo_id;
* relativePath *の内部に結果の文字列を投稿できますか?また、ドキュメントによると、* PHOTO_ID/tags/USER_ID *または* PHOTO_ID/tags?to = USER_ID *にタグを投稿することができます。後で試してみましたか? –
私はちょうど運がないと後で試しました。相対パスはアプリケーションの実行ごとに変更され、アプリケーションピクチャは新しいピクチャを撮影した後にアップロードされタグが付けられます。しかし、最近のrelativePathの例があります: 100003703122664_62586/tags/100003702982567 – justbaum30
この写真のIDは本当にわかりましたか?それは正しいとは思わない。あなたはどのように写真のIDを取得しますか?つまり、* Constants.photoID *はどこから来ますか? –