Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TwitterOAuth回调URL-本地主机开发_Twitter_Oauth - Fatal编程技术网

TwitterOAuth回调URL-本地主机开发

TwitterOAuth回调URL-本地主机开发,twitter,oauth,Twitter,Oauth,是否有其他人很难让Twitters oAuth的回调URL访问其本地主机开发环境。 显然,它最近被禁用了 有人有解决办法吗。我真的不想停止我的开发是的,由于OAuth中最近发现的安全问题,它被禁用了。目前唯一的解决方案是创建两个OAuth应用程序——一个用于生产,一个用于开发。在开发应用程序中,您可以设置本地主机回调URL,而不是live URL。备选方案1。 设置.hosts(Windows)或etc/hosts文件以将活动域指向本地主机IP。例如: 127.0.0.1 xyz.com 其中x

是否有其他人很难让Twitters oAuth的回调URL访问其本地主机开发环境。 显然,它最近被禁用了


有人有解决办法吗。我真的不想停止我的开发

是的,由于OAuth中最近发现的安全问题,它被禁用了。目前唯一的解决方案是创建两个OAuth应用程序——一个用于生产,一个用于开发。在开发应用程序中,您可以设置本地主机回调URL,而不是live URL。

备选方案1。

设置.hosts(Windows)或etc/hosts文件以将活动域指向本地主机IP。例如:

127.0.0.1 xyz.com

其中xyz.com是您真正的域名

备选方案2.

此外,本文还提供了使用URL缩短器服务的技巧。缩短本地URL并将结果作为回调提供

备选方案3.


此外,它似乎可以提供例如
http://127.0.0.1:8080
作为对Twitter的回调,而不是
http://localhost:8080

我上个星期刚不得不这么做。显然,
localhost
不起作用,但
127.0.0.1
确实起作用

当然,这假设您正在Twitter上注册两个应用程序,一个用于您的live
www.mysite.com
,另一个用于
127.0.0.1

我就是这样做的:

已注册的回调URL:

配置设置:

public static class ConfigSettings
{
    public static String getConsumerKey()
    {
        return System.Configuration.ConfigurationManager.AppSettings["ConsumerKey"].ToString();
    }

    public static String getConsumerSecret()
    {
        return System.Configuration.ConfigurationManager.AppSettings["ConsumerSecret"].ToString();
    }

}
Web.config:

<appSettings>

    <add key="ConsumerKey" value="xxxxxxxxxxxxxxxxxxxx"/>
    <add key="ConsumerSecret" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/>

</appSettings>

确保将项目的属性“使用动态端口”设置为“false”,并输入静态端口号。(我用1066)

我希望这有帮助

使用

它所做的是与127.0.0.1的简单DNS关联,允许您绕过localhost或127.0.0.1上的过滤器:

斯马卡霍街。127.0.0.1中的28800

因此,如果您单击该链接,它将显示您在本地Web服务器上拥有的内容(如果您没有,您将获得404)。当然,您可以将其设置为所需的任何页面/端口:


将其作为回调url,其中xxxx是框架的端口

在twitter应用程序中设置回调url:127.0.0.1:3000 并将WEBrick设置为绑定到127.0.0.1而不是0.0.0.0


command:rails s-b 127.0.0.1

当我在本地开发时,我总是设置一个本地托管的开发人员名称,以反映我正在处理的项目。我通过xampp\apache\conf\extra\httpd-vhosts.conf在xampp中设置了这个,然后在\Windows\System32\drivers\etc\hosts中也设置了这个

因此,如果我正在为example.com设置一个本地开发站点,我会在这两个文件中将其设置为example.dev

简短回答:一旦设置正确,在设置Twitter应用程序时,您可以简单地将此url()视为活动的(而不是本地的)

这里给出了类似的答案:

直接报价(增加强调):

您可以提供任何有效的URL和我们在网站上识别的域名 应用程序详细信息页面。OAuth 1.0a要求您发送 流的请求令牌步骤上的oauth_回调值,我们将 在该步骤上接受基于动态locahost的回调


这对我很有吸引力。希望这有帮助。

在TwitterAPIExchange.php第180行编辑此函数

public function performRequest($return = true)
{
    if (!is_bool($return)) 
    { 
        throw new Exception('performRequest parameter must be true or false'); 
    }

    $header = array($this->buildAuthorizationHeader($this->oauth), 'Expect:');

    $getfield = $this->getGetfield();
    $postfields = $this->getPostfields();

    $options = array( 
        CURLOPT_HTTPHEADER => $header,
        CURLOPT_HEADER => false,
        CURLOPT_URL => $this->url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_SSL_VERIFYHOST => false
    );

    if (!is_null($postfields))
    {
        $options[CURLOPT_POSTFIELDS] = $postfields;
    }
    else
    {
        if ($getfield !== '')
        {
            $options[CURLOPT_URL] .= $getfield;
        }
    }

    $feed = curl_init();
    curl_setopt_array($feed, $options);
    $json = curl_exec($feed);
    curl_close($feed);

    if ($return) { return $json; }
}

我在本地主机上使用Twitter回调url。如果您不确定如何创建虚拟主机(这很重要),请使用AMPP。他真的很酷,很容易相处。只需几个步骤,您就可以拥有自己的虚拟主机,然后每个url都可以使用它。例如:

  • 下载并安装AMPS

  • 添加新域。(这里您可以设置例如twitter.local),这意味着您的虚拟主机将是,并且在第3步之后它将工作

  • 我正在处理Win,请转到您的主机文件->C:\Windows\System32\Drivers\etc\hosts并添加行:127.0.0.1 twitter.local

  • 重新启动AMPP,您可以使用回调。您可以指定任何url,即使您使用的是某个框架MVC或您有htaccess url重写

    希望这有帮助!
    干杯。

    可以通过以下方式非常方便地完成:

    • 打开菜单工具>主机…
    • 插入一行,如
      127.0.0.1 your production domain.com
      ,确保选中“启用请求的重新映射…”。不要忘记按保存
    • 如果需要访问真实的生产服务器,只需退出Fiddler或禁用重新映射
    • 再次启动Fiddler将打开重新映射(如果选中)
    令人愉快的好处是,您可以指定自定义端口,如下所示:
    127.0.0.1:3000您的生产域.com
    (不可能通过hosts文件实现这一点)。此外,您可以使用任何域名(例如,
    localhost
    )代替IP


    通过这种方式,您可以(但不是必须)只注册一次您的Twitter应用程序(前提是您不介意在本地开发和生产中使用相同的密钥)。

    看起来Twitter现在允许
    localhost
    与您在
    回调URL
    设置中拥有的任何内容一起使用,只要那里有一个值。

    回调URL已编辑

    http://localhost:8585/logintwitter.aspx
    
    皈依

    http://127.0.0.1:8585/logintwitter.aspx
    

    我在这方面遇到了困难,并遵循了十几种解决方案,最后我要在本地主机上使用任何ssl API所需做的就是:

    下载:

    php.ini
    *中取消注释和更改:
    
    curl.cainfo=“c:/wamp/bin/php/php5.5.12/cacert.pem”
    

    • 通过在CLI中运行
      php--ini
      ,可以找到
      php.ini
      文件在计算机上的位置
    • 为了方便起见,我将cacert.pem放在与php.ini相同的目录中

    以下是让Facebook使用笔记本电脑上的本地应用程序的步骤:
    http://127.0.0.1:8585/logintwitter.aspx