Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WRONG_SIGNATURE When try to delete article #20

Open
nemanja947 opened this issue Jun 29, 2017 · 2 comments
Open

WRONG_SIGNATURE When try to delete article #20

nemanja947 opened this issue Jun 29, 2017 · 2 comments

Comments

@nemanja947
Copy link

nemanja947 commented Jun 29, 2017

When i try to delete an article i get this error:
PHP Notice: Array
(
[code] => 401
[message] => HTTP/1.1 401 Unauthorized
[response] => stdClass Object
(
[errors] => Array
(
[0] => stdClass Object
(
[code] => WRONG_SIGNATURE
)
)
)
)

What's weird is that before I delete it, I get the news over Get method, this is my code:

if ($item['AppleArticle']['status'] == 'deleted') {
$response_get = $PublisherAPI->Get('/articles/{article_id}',
array(
'article_id' => $item['AppleArticle']['appleId']
)
);
if (isset($response_get->data->id)) {

                    $response_delete = $PublisherAPI->Delete('/articles/{article_id}',
                        array(
                            'article_id' => $response_get->data->id
                        )
                    );
@nguyentamgm
Copy link

Same problem here, GET and POST are ok, DELETE doesn't work

@nguyentamgm
Copy link

nguyentamgm commented Oct 30, 2018

I updated Curl/Curl.php and it is now working

    public function delete($url, $query_parameters = array(), $data = array())
    {
        if (is_array($url)) {
            $data = $query_parameters;
            $query_parameters = $url;
            $url = (string)$this->url;
        }

        $this->setUrl($url, $query_parameters);
        $this->setOpt(CURLOPT_CUSTOMREQUEST, 'DELETE');
// Start editing
        if (!empty($data)) {
            $this->setOpt(CURLOPT_POSTFIELDS, $this->buildPostData($data));
        }
// End editing
        return $this->exec();
    }

The reason is Apple News needs another type of signature when using POST data, and it seems to be like Apple News uses CURLOPT_POSTFIELDS from header to determine a POST action! 🤪

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants