0

AndroidアプリケーションからInstagramアプリケーションに画像を共有しようとしています.........画像をアップロードできません....

@SuppressWarnings("unchecked")
public Map<String, String> doUpload() {
Log.i(TAG, "Upload");
Long timeInMilliseconds = System.currentTimeMillis()/1000;
String timeInSeconds = timeInMilliseconds.toString();
MultipartEntity multipartEntity = new     
MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
Map returnMap = new HashMap<String, String>();
// check for cookies
/*  if( httpClient.getCookieStore() == null ) {
 returnMap.put("result", "Not logged in");
        return returnMap;
    }*/

    try {
        // create multipart data
         System.out.println("image path name : "+processedImageUri.getPath());
         System.out.println("image file path : "+ImgFilePath);
        File imageFile = new File(ImgFilePath);//processedImageUri.getPath());
        FileBody partFile = new FileBody(imageFile);
        StringBody partTime = new StringBody(timeInSeconds);

        multipartEntity.addPart("photo", partFile );
        multipartEntity.addPart("device_timestamp", partTime);
    } catch ( Exception e ) {
        Log.e(TAG,"Error creating mulitpart form: " + e.toString());
        returnMap.put("result", "Error creating mulitpart form: " + e.toString());
        return returnMap;
    }

    // upload
    try {
        System.out.println("111111111111111111");
        System.out.println("multipart entity value : "+multipartEntity.toString());
        HttpPost httpPost = new HttpPost(Utils.UPLOAD_URL);
        httpPost.setEntity(multipartEntity);
        System.out.println("http post vlaue : "+httpPost.toString());
        System.out.println("http client value : "+httpClient.toString());
        HttpResponse httpResponse = httpClient.execute(httpPost);
        System.out.println("Http response value : "+httpResponse.toString());
        HttpEntity httpEntity = httpResponse.getEntity();
        Log.i(TAG, "Upload status: " + httpResponse.getStatusLine());
        System.out.println("staus entity value : "+httpResponse.getStatusLine().toString());
        System.out.println("http status : "+HttpStatus.SC_OK);

        // test result code
        if( httpResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK ) {
            Log.e(TAG, "Login HTTP status fail: " + httpResponse.getStatusLine().getStatusCode());
            returnMap.put("result", "HTTP status error: " + httpResponse.getStatusLine().getStatusCode() );
            return returnMap;
        }

        // test json response
        // should look like
        /*
        {"status": "ok"}
        */
        if( httpEntity != null ) {
            BufferedReader reader = new BufferedReader(new InputStreamReader(httpEntity.getContent(), "UTF-8"));
            String json = reader.readLine();
            System.out.println("Entity value : "+json);
            JSONTokener jsonTokener = new JSONTokener(json);
            JSONObject jsonObject = new JSONObject(jsonTokener);
            Log.i(TAG,"JSON: " + jsonObject.toString());

            String loginStatus = jsonObject.getString("status");

            if( !loginStatus.equals("ok") ) {
                Log.e(TAG, "JSON status not ok: " + jsonObject.getString("status"));
                returnMap.put("result", "JSON status not ok: " + jsonObject.getString("status") );
                return returnMap;
            }
        }
    } catch( Exception e ) {
        Log.e(TAG, "HttpPost exception: " + e.toString());
        returnMap.put("result", "HttpPost exception: " + e.toString());
        return returnMap;
    }

    // configure / comment
    try {
        HttpPost httpPost = new HttpPost(Utils.CONFIGURE_URL);
        String partComment = txtCaption.getText().toString();
        List<NameValuePair> postParams = new ArrayList<NameValuePair>();
        postParams.add(new BasicNameValuePair("device_timestamp", timeInSeconds));
        postParams.add(new BasicNameValuePair("caption", partComment));
        httpPost.setEntity(new UrlEncodedFormEntity(postParams, HTTP.UTF_8));
        System.out.println("http client value : "+httpClient.toString());
        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();

        // test result code
        if( httpResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK ) {
            Log.e(TAG, "Upload comment fail: " + httpResponse.getStatusLine().getStatusCode());
            returnMap.put("result", "Upload comment fail: " + httpResponse.getStatusLine().getStatusCode() );
            return returnMap;
        }

        returnMap.put("result", "ok");
        return returnMap;
    } catch( Exception e ) {
        Log.e(TAG, "HttpPost comment error: " + e.toString());
        returnMap.put("result", "HttpPost comment error: " + e.toString());
        return returnMap;
    }

上記は、画像のアップロードに使用するコードであり、このための URL は UPLOAD_URL = "http://instagr.am/api/v1/media/upload/" .......... . plsは誰でも私がインスタグラムに画像をアップロードするのを手伝ってくれませんか....... よろしくお願いします

4

1 に答える 1

4

InstagramAPIはまだアップロードをサポートしていません。

Instagram APIドキュメントから:

現時点では、APIを介したアップロードはできません。次の理由により、これを追加しないことを意識的に選択しました。

Instagramは外出先でのあなたの生活についてです-私たちはアプリ内からの写真を奨励したいと思っています。ただし、将来的には、ケースバイケースでホワイトリストに個々のアプリへのアクセスを許可する可能性があります。スパムや低品質の写真と戦いたいと思っています。他のソースからのアップロードを許可すると、Instagramエコシステムに何が入るかを制御するのが難しくなります。そうは言っても、私たちはユーザーが私たちのプラットフォームで一貫した高品質の体験を確実に得られるようにする方法に取り組んでいます。

于 2012-09-21T15:45:20.047 に答える