我在19年2月13日左右突然突然遇到一些代码,原因似乎是Instagram API端点GET / users / self / media / recent上的CORS问题。在02/12/19一切正常,两天后每次都出现CORS问题。
相同的GET请求插入Postman或Chrome浏览器时,不会出现问题,因此,导致CORS问题的请求本身并不是什么错误。我尝试用其他API终结点替换Instagram终结点,并且那里没有问题。从本地主机或网站本身发出请求时,会发生CORS问题。
Access to fetch at
'https://api.instagram.com/v1/users/
self/media/recent/?access_token=MY_ACCESS_TOKEN&count=6' from origin
'http://localhost:3000' has been blocked by CORS policy:
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch
the resource with CORS disabled.
一旦我构建了页面(我正在使用ReactJS)并发布它,我可以期望它在我的访问令牌过期之前可以正常工作。相反,一夜之间出现了CORS问题。我被认为是这是Facebook对他们的Instagram API所做的更改,而不是由于代码问题引起的。
答案 0 :(得分:0)
这可能很麻烦,但是?__ a = 1仍然有效,但是我使用Java程序来调用Instagram。这是代码示例。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class Test {
public static void main(String[] args) {
try {
//URL url = new URL("https://api.twitter.com/1.1/search/tweets.json?q=arraylist_thesis&result_type=recent");
URL url = new URL("https://www.instagram.com/explore/tags/animolasalle/?__a=1");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出将是这样。 Instagram call in Java Program
我猜想我们将不得不制造自己的REST服务器来调用URL。 我希望这对我有所帮助,因为我今天早上才发现这个问题。